将列表列表转换为NumPy:了解生成的形状

时间:2015-12-15 23:01:08

标签: python arrays numpy

怎么来

np.array([[1],[2],[3,4]], dtype=object).shape
>> (3L,)

,而

np.array([[1],[2],[3]], dtype=object).shape
>> (3L, 1L)

为什么[[1],[2],[3,4]]在投射到NumPy数组时不会产生与[[1],[2],[3]]相同的形状?

1 个答案:

答案 0 :(得分:2)

第二种情况将与2d numpy ndarray兼容:它是列表列表,第二种情况的长度相同。这就是为什么你得到一个2d形状(确切地说是列向量)。另一方面,第一种情况具有不兼容的长度,并且您只能构造一个1d,数组 - * list-valued ndarray

检查阵列本身:

a = np.array([[1],[2],[3,4]], dtype=object)
b = np.array([[1],[2],[3]], dtype=object)
In [1482]: a[2]
Out[1482]: [3, 4]

In [1483]: b[2,0]
Out[1483]: 3

*感谢@Warren Weckesser澄清