如何根据条件将 numpy 数组中的某些值设为 null?
我不明白为什么在不满足条件的情况下我最终会得到 0 而不是 null 或空值... b 是一个填充有 0 和 1 值的 numpy 数组,c 是另一个完全填充的 numpy 数组。所有阵列均为 71x71x166
a = np.empty(((71,71,166)))
d = np.empty(((71,71,166)))
for indexes, value in np.ndenumerate(b):
i,j,k = indexes
a[i,j,k] = np.where(b[i,j,k] == 1, c[i,j,k], d[i,j,k])
我想最终得到一个数组,该数组仅具有满足条件的值,而其他位置为空,但不改变其形状
按要求澄清的完整问题:
我从形状为 (71,71,166) 的浮点填充数组开始
我根据应用于 float 数组的截止值创建了一个 int 数组,基本上创建了多个 bin,大致标记了数组内的 10 个区域,中间有 0 个值
我想要最终得到的是一个形状为 (71,71,166) 的数组,它具有某个“bin”的特定数组方向(假设垂直方向,如果您将 3D 数组视为 3D 立方体)的平均值...
所以我试图循环遍历“bins”b == 1、b == 2等,对满足该条件但在其他地方为空的浮点数进行采样,这样我就可以取平均值,然后在最后重新组合成一个数组循环的....
不确定我是否让自己被理解。我正在使用 np.where 并使用索引,因为当我尝试不使用索引时,我不断收到错误,尽管感觉效率非常低。