numpy的多维数组的确切含义是什么?

时间:2018-03-29 15:00:36

标签: python python-3.x numpy multidimensional-array

有人可以告诉我为什么a有效,而b没有ValueError: setting an array element with a sequenceThis说“多维”原因,但就我而言,我认为ab是相同的。

import numpy as np

a=np.array([[1],2,3])
b=np.array([1,2,[3]])

1 个答案:

答案 0 :(得分:4)

Numpy正在观察第一个元素,看看该数组将具有什么类型。对于a,它会看到一个列表,因此生成一个object数组。它很乐意继续将其余元素填入object数组。对于b,它会看到一个数值并假设它将成为某个数字dtype。然后当它到达列表时它会发出砰砰声。

您可以通过首先声明object dtype

来覆盖此内容
a=np.array([[1],2,3])
b=np.array([1,2,[3]], 'object')

print(a, b, sep='\n\n')

[list([1]) 2 3]

[1 2 list([3])]

请注意,这可能不是Numpy如何识别dtype,但它必须非常接近。