gpt4 book ai didi

python - numpy.array 不能正常工作?

转载 作者:行者123 更新时间:2023-11-28 19:49:46 24 4
gpt4 key购买 nike

我正在尝试将列表的列表转换为数组,但发生了一些奇怪的事情。

例如,如果我将列表声明为:

a=[]
a.append(['a',1,10,100])
a.append(['b',2,20,200])
a.append(['c',3,30,300])
a.append(['d',4,40,400])

然后转换为向量

a=np.array(a)

最终结果是

[['a','1','1','1'],['b','2','2','2'],['c','3','3','3'],['d','4','4','4']]

我是一个完全的 Python 初学者,但是根据我使用 np.array 阅读的内容,向量中的所有内容都被转换为字符串(如果我错了请纠正我)。为什么这里忽略了零,我该怎么做才能修复它?

最佳答案

由于您的数组具有非统一数据类型,因此您必须指定“结构化”dtype

In [2]: a = [('a', 1, 10, 100),
...: ('b', 2, 20, 200),
...: ('c', 3, 30, 300),
...: ('d', 4, 40, 400)]

In [3]: a = np.array(a, dtype = "S1, int, int, int")

In [4]: a
Out[4]:
array([('a', 1, 10, 100),
('b', 2, 20, 200),
('c', 3, 30, 300),
('d', 4, 40, 400)],
dtype=[('f0', 'S1'), ('f1', '<i8'), ('f2', '<i8'), ('f3', '<i8')])

您可以轻松访问:

In [5]: a.dtype.names = ['name','x','y','z']

In [6]: a['x']
Out[6]: array([1, 2, 3, 4])

In [7]: a['name']
Out[7]:
array(['a', 'b', 'c', 'd'],
dtype='|S1')

In [8]: a[0]
Out[8]: ('a', 1, 10, 100)

关于python - numpy.array 不能正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15791558/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com