numpy mask un-shaped N维数组

时间:2016-11-23 17:02:01

标签: numpy shape mask dimension

这是一个我想掩盖的Numpy数组(注意它不是一个严格的2D数组):

a = array([array([0,1,2,3,4]),array([0,1]),array([0,1,2,3,4])],dtype =对象)

然而,这似乎是不可能的。我想了解为什么,以及可能如何处理这种示例,我从一个值中获取一个掩码,将其应用于另一个具有相同形状的数组。

非常感谢。

2 个答案:

答案 0 :(得分:0)

这是一个对象dtype数组,包含3个元素(恰好是数组本身):

In [94]: a = np.array([np.array([0, 1, 2, 3, 4]), np.array([0, 1]), np.array([0,
    ...:  1, 2, 3, 4])], dtype=object)
In [95]: a
Out[95]: array([array([0, 1, 2, 3, 4]), array([0, 1]), array([0, 1, 2, 3, 4])], dtype=object)
In [96]: a.shape
Out[96]: (3,)
In [97]: a[1]
Out[97]: array([0, 1])

mask是什么意思?

我可以对它应用一个布尔索引:

In [99]: a[np.array([True,False,True])]
Out[99]: array([array([0, 1, 2, 3, 4]), array([0, 1, 2, 3, 4])], dtype=object)

a==np.array([0,1])发出警告并False;通常==(和其他比较测试)不适用于对象dtype数组。

答案 1 :(得分:0)

你可能需要的是使用可以保存缺失值的Pandas DataFrames。在你的情况下,你可以做这样的事情:

__aeabi_dadd

DataFrames非常强大,当你想到的东西更像电子表格而非矩阵时,它们有比Numpy数组更合适的方法。