怎么来
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]]
相同的形状?
答案 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澄清