Python 将列表列表强制转换为NumPy:了解结果形状
怎么会这样Python 将列表列表强制转换为NumPy:了解结果形状,python,arrays,numpy,Python,Arrays,Numpy,怎么会这样 np.array([[1],[2],[3,4]], dtype=object).shape >> (3L,) 当 ? 为什么将[[1]、[2]、[3,4]]转换为NumPy数组时,生成的形状与[[1]、[2]、[3]]不一样?第二种情况将与2d NumPyndarray兼容:它是一个列表列表列表列表,第二个级别具有相同的长度。这就是为什么会得到2d形状(精确地说是列向量)。另一方面,第一种情况的长度不兼容,您只能从中构造一个1d数组-*列表值ndarray 检查阵列本身
np.array([[1],[2],[3,4]], dtype=object).shape
>> (3L,)
当
?
为什么将
[[1]、[2]、[3,4]]
转换为NumPy数组时,生成的形状与[[1]、[2]、[3]]
不一样?第二种情况将与2d NumPyndarray
兼容:它是一个列表列表列表列表,第二个级别具有相同的长度。这就是为什么会得到2d形状(精确地说是列向量)。另一方面,第一种情况的长度不兼容,您只能从中构造一个1d数组-*列表值ndarray
检查阵列本身:
a = np.array([[1],[2],[3,4]], dtype=object)
b = np.array([[1],[2],[3]], dtype=object)
*感谢您的澄清Numpy不允许使用“参差不齐”阵列。第二个示例中的数据可以组织成一个具有形状(3,1)的二维数组,因此numpy使其成为一个由python整数组成的二维数组。第一个示例中的数据不能组织为二维数组,因此numpy尽其所能将其设置为python列表的一维数组。
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