0

ループして1E-35未満のすべての値を1E-35に置き換えたいnxnxn行列があります。

          for i in range(N):
              for j in range(N):
                  for k in range(N):
                      if data[i][j][k] < 1E-35:
                          data[i][j][k] = 1E-35

動作しないようです。

編集:私はそれを解決しました。それはインデントと誤ったインデックス付けの両方でした[i][j][k]。

問題は残っています:これはNxNxNデータの0からN-1にループしますか?data.min()を実行しても、ループの後で1E-35になるはずの値〜1E-101を取得します。forループを間違って実行していますか?

4

1 に答える 1

5

numpyを使用しているように見えますが、その場合は、次のようにしますnp.where

data = np.where(data < 1e-35,1e-35,data)

または、派手なインデックスを使用することもできます。

data[ data < 1e-35 ] = 1e-35
于 2013-01-16T19:08:12.287 に答える