小编Jes*_*Rio的帖子

如何更改numpy中的掩码数组的值?

在我的代码中,有时我尝试修改掩码数组的值,但是python似乎忽略了这一点。我在想这与将内存存储在数组中的方式有​​关,就好像我在修改值的副本而不是值本身一样,但是我对此并不足够了解,因此不知道如何解析它。

这是我要做的事情的简化版本:

    x = np.zeros((2,5)) # create 2D array of zeroes
    x[0][1:3] = 5       # replace some values along 1st dimension with 5

    mask = (x[0] > 0)   # create a mask to only deal with the non negative values

    x[0][mask][1] = 10  # change one of the values that is non negative 

    print x[0][mask][1] # value isn't changed in the original array
Run Code Online (Sandbox Code Playgroud)

输出是:

    5.0
Run Code Online (Sandbox Code Playgroud)

什么时候应该是10。

任何帮助将不胜感激,理想情况下,这需要可扩展(这意味着我不一定知道x的形状,或者值非负,或者我需要修改哪个)。

我正在Ubuntu 16.04.2上的python 2.7.12上使用numpy 1.11.0

谢谢 !

python arrays numpy masked-array

5
推荐指数
1
解决办法
3808
查看次数

标签 统计

arrays ×1

masked-array ×1

numpy ×1

python ×1