在修改掩码数组中的数据时,我没想到会出现以下行为。似乎可以使用 [] 操作数修改某些值,但不是全部。但是,如果您访问它的数据属性,那么您可以修改所有。仅当元组中的单元格的掩码中有 True 值时才会发生这种情况(与掩码数组相关的所有操作似乎都正常工作)。
谁能解释为什么?
>>> import numpy as np
>>> import numpy.ma as ma
>>> arr = ma.ones(nrows, dtype=[('c1', np.int),('c2', np.int)])
>>> arr.mask[1][0] = True
>>> arr[1][1] = 3
>>> arr[0][0] = 4
>>> arr
masked_array(data = [(4, 1) (--, 1) (1, 1)],
mask = [(False, False) (True, False) (False, False)],
fill_value = (999999, 999999),
dtype = [('c1', '<i8'), ('c2', '<i8')])
>>> arr.data[1][1]=5
>>> arr
masked_array(data = [(4, 1) (--, 5) (1, 1)],
mask = [(False, False) (True, False) (False, False)],
fill_value = (999999, 999999),
dtype = [('c1', '<i8'), ('c2', '<i8')])