我已经四处寻找,但似乎找不到任何有效的方法来根据索引选择一个3d数组的一部分。让我们举例说,我有一些尺寸为200 x 200 x 200的3d数组,我想选择并更改所有索引大于100的所有元素的值
import numpy as np
mask = np.ones((200,200,200))
for x in np.arange(0,mask.shape[0]):
for y in np.arange(0,mask.shape[1]):
for z in np.arange(0,mask.shape[2]):
if x > 100 & y > 100 & z > 100:
mask[x,y,z] = 0
else:
mask[x,y,z] = 1
必须有一些有效的方法来使用np.select或类似的方法,但我无法理解它。任何帮助将不胜感激。
答案 0 :(得分:4)
我想选择并更改所有索引大于100的所有元素的值
以下应该这样做:
mask[101:,101:,101:] = 0