选择多维numpy数组的部分

时间:2013-01-19 20:18:00

标签: python numpy

我已经四处寻找,但似乎找不到任何有效的方法来根据索引选择一个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或类似的方法,但我无法理解它。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:4)

  

我想选择并更改所有索引大于100的所有元素的值

以下应该这样做:

mask[101:,101:,101:] = 0