2

私は配列を持っていて、それらが負の場合(ブール条件である可能性があります)、要素の一部を変更したいのですが、コードがそれを行ったかどうかも知りたいです。

現在、私は持っています

Mat = #some source
Check = Mat < 0
Check_flag = Check.sum()

if check_flag != 0:
    Mat[Check] = 0 #reset those elements
    logger = logger + '\n This Mat needed to be fixed' #or some over logging method

これは最良の方法かもしれませんが、何とか「LBYL」が多すぎてPythonicではないように感じます-また、通常、1e6要素を超える配列を処理してからループします-そのため、チェックを実行することによるパフォーマンスへの影響について少し心配しています2回(「チェック」配列が作成されたときに1回、次にすべての要素を合計して、そのうちの1つが「真」であるかどうかを確認するときにもう一度)。

これを行うためのより良い(より効率的な)方法を知っている人はいますか?

4

1 に答える 1