【发布时间】:2021-03-08 12:05:26
【问题描述】:
我有一个巨大的 3d NumPy 数组和一个相同形状的掩码数组,其中填充了 1 或 0。让我们以此为例:
arr = np.random.randint(1, 100, size=(4, 4, 4))
mask = np.zeros(shape=(4,4,4), dtype='int')
mask[0,2:3,:] = 1
我的目标是获得相同形状的数组(在本例中为 (4,4,4)),我们将其命名为 new_arr,其值来自 arr,其中 mask == 1。 new_arr 中的所有其他值都应该是 -2。 (不是0)
但是,这样做:
new_arr = arr[mask]
产生 (4, 4, 4, 4, 4) 形状的阵列。
所以,我有 2 个问题:1:) 如何获得我想要的结果和 2.) 为什么以这种方式屏蔽 3d NumPy 数组会导致 5d 数组。
【问题讨论】:
标签: arrays python-3.x numpy mask