蒙面阵的奇异行为

2024-05-08 03:04:41 发布

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

我很难理解裸体面具阵列的行为。你知道吗

以下是让我困惑的片段,原因有两个:

arr = numpy.ma.array([(1,2),(3,4)],dtype=[("toto","int"),("titi","int")])
arr[0][0] = numpy.ma.masked
  1. 执行此操作时,不会对元素[0][0]应用任何掩码
  2. 将数据更改为[[1,2],[3,4]](而不是[(1,2),(3,4)]),会出现以下错误: TypeError: expected a readable buffer object

似乎我完全误解了如何设置(和使用)掩蔽数组。你知道吗

你能告诉我这个代码有什么问题吗?你知道吗

谢谢

编辑:不指定数据类型,它的工作方式与预期的一样


Tags: 数据numpy元素原因titiarrayintarr
1条回答
网友
1楼 · 发布于 2024-05-08 03:04:41

掩蔽数组的目的是告诉任何操作数组中的某些元素是无效的,即掩蔽的。你知道吗

例如,您有一个数组:

a = np.array([[2, 1000], [3, 1000]])

并且您希望忽略具有元素>100的任何操作。创建遮罩数组,如下所示:

b = np.ma.array(a, mask=(a>100))

您可以在两个数组中执行一些操作以查看差异:

a.sum()
# 2005
b.sum()
# 5

a.prod()
# 6000000
b.prod()
# 6

如您所见,屏蔽项被忽略。。。你知道吗

相关问题 更多 >