可能原因1:尝试创建锯齿状数组
您可能会从形状不像多维数组的列表创建数组:
numpy.array([[1, 2], [2, 3, 4]]) # wrong!
numpy.array([[1, 2], [2, [3, 4]]]) # wrong!
在这些例子中,论证numpy.array
包含不同长度的序列。这些将产生此错误消息,因为输入列表的形状不像可以转换为多维数组的“盒子”。
可能原因2:提供不兼容类型的元素
例如,提供一个字符串作为类型数组中的元素float
:
numpy.array([1.2, "abc"], dtype=float) # wrong!
如果你真的想要一个包含字符串和浮点数的 NumPy 数组,你可以使用 dtypeobject
,它允许数组保存任意Python对象:
numpy.array([1.2, "abc"], dtype=object)