0

我有一个 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

似乎不起作用。

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

问题仍然存在:这会从 NxNxN 数据的 0 循环到 N-1?当我执行 data.min() 时,我仍然得到值 ~ 1E-101,在循环之后应该是 1E-35。我做错了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 回答