gpt4 book ai didi

python - numpy 掩码数组的奇怪行为

转载 作者:太空宇宙 更新时间:2023-11-03 18:45:15 24 4
gpt4 key购买 nike

我很难理解 numpy 掩码数组的行为。

下面的代码片段让我感到困惑,原因有两个:

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)] ),我收到以下错误:类型错误:需要一个可读的缓冲区对象

看来我完全误解了如何设置(和使用)屏蔽数组。

你能告诉我这段代码有什么问题吗?

谢谢

编辑:在不指定数据类型的情况下,它的工作方式与预期相同

最佳答案

屏蔽数组的目的是告诉任何操作该数组的某些元素无法使用,即屏蔽。

例如,您有一个数组:

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

如您所见,被屏蔽的项目被忽略......

关于python - numpy 掩码数组的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19686434/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com