为什么numpy中两个蒙版矢量的点积返回奇怪形状的数组?

时间:2017-02-17 10:41:20

标签: numpy masked-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)

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

1 个答案:

答案 0 :(得分:2)

结果是0D张量。

通常numpy将0D张量转换为本机类型

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

但是,当结果是掩码数组时,由于掩码的存在,没有办法将它直接转换为本机类型而不会丢失信息。因此,你会得到一个“形状奇特”的0D张量。

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