将值赋给多维掩码数组不会清除掩码?

2024-06-29 00:46:18 发布

您现在位置:Python中文网/ 问答频道 /正文

分配给蒙版数组应该是为了清除蒙版。这在一维数组中可以,但在多维数组中不行。我可以通过将数组展平到一个维度或者显式地指定掩码(如下所示)来解决这个问题,但是看起来我不需要做这两件事。我做错了吗?你知道吗

import numpy
marray = numpy.ma.masked_all(3)
marray
marray.hardmask
marray.data
marray.mask
marray[2] = 2
marray

marray2 = numpy.ma.masked_all((3,3))
marray2
marray2.hardmask
marray2.data
marray2.mask
marray2[2][2] = 2
marray2
marray2.data
marray2.mask
marray2.mask[2][2] = False
marray2

Tags: importnumpyfalsedatamask数组all两件事
1条回答
网友
1楼 · 发布于 2024-06-29 00:46:18

执行marray2[2][2] = 2操作时,第一个[2]实际上返回数组第三行的副本,而不是对marray2中的行的引用,因此您正在操作副本,而不影响marray2。你知道吗

与列表和元组不同,numpy数组支持多维数组的多维索引。试着用marray2[2,2] = 2替换marray2[2][2] = 2,我相信你会得到你期望的结果。你知道吗

相关问题 更多 >