为什么 numpy return 中两个屏蔽向量的点积是一个奇形怪状的数组?

Why does a dot product of two masked vectors in numpy return an oddly shaped array?

我有以下代码:

result = np.ma.dot( array1, masked_array2 )

这给出了这样的东西:

masked_array(data = 24.681441709536468,
         mask = False,
         fill_value = 1e+20)

result.data.shape 给出:

()

我可以通过将其转换为浮点数来访问该值,例如

float(result.data)

这是访问数据的正确方法吗?

结果是0维张量。

通常 numpy 将 0D 张量转换为原生类型

type(np.dot([1,2], [3,4])) # gives 'int'

但是,当结果是masked array时,由于mask的存在,没有办法在不丢失信息的情况下直接转换为native类型。因此你得到一个 "oddly shaped" 0D 张量作为结果。

是的,您可以通过将其转换为浮点数来访问它。