循环遍历python中的NxNxN数组并替换符合条件的所有值

Gri*_*iff 0 python loops

我有一个nxnxn矩阵,我想循环并用1E-35替换所有值<1E-35.

          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
Run Code Online (Sandbox Code Playgroud)

似乎没有用.

编辑:我解决了.这是缩进和不正确的索引[i] [j] [k].

问题依旧:这从NxNxN数据的0到N-1循环?当我做data.min()时,我仍然得到值~1E-101,它应该是循环后的1E-35.我做错了吗?

mgi*_*son 5

它看起来像你在使用numpy,在这种情况下,你可能想要np.where:

data = np.where(data < 1e-35,1e-35,data)
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用花式索引:

data[ data < 1e-35 ] = 1e-35
Run Code Online (Sandbox Code Playgroud)