为什么我在初始化numpy数组时会出现“Field elements”相关报错?
报错原因解析
- 首先明确
numpy.array()的参数规则:第一个参数为待转换为数组的输入序列,第二个可选参数用于指定数组的数据类型dtype - 你当前代码的传参逻辑错误:
np.array([1,2,3,4],[5,6,7,8])的写法,等于将[1,2,3,4]传给了第一个入参,把[5,6,7,8]传给了第二个dtype参数 - 报错触发逻辑:当
dtype参数传入列表时,numpy会将其识别为结构化数组的字段定义,要求列表内每个元素都是描述字段属性的2或3元组,但你传入的第二个列表首元素为数字5,不符合结构化字段的定义规则,因此抛出TypeError
修复方案
如果需要创建二维数组,需要将所有行数据包裹在同一个外层列表中,作为numpy.array()的第一个参数传入,正确写法如下:
import numpy as np a = np.array([[1,2,3,4],[5,6,7,8]])
内容的提问来源于stack exchange,提问作者nicomp
相关产品推荐
相关产品推荐

