gpt4 book ai didi

python - 如何让 Numpy 给出列表数组而不是元组?

转载 作者:行者123 更新时间:2023-12-01 04:57:57 25 4
gpt4 key购买 nike

当我用数据创建 numpy 数组时,我得到(如预期的)列表列表,但是当我为它们声明数据类型时,我得到的似乎是元组列表,这不好。这是一个问题,因为 numpy 似乎认为第一个数组是二维数组,而第二个数组是一维数组(它将其 .shape 指定为 (9,) 。我希望能够保持二维数组的可用性,但为其提供如下数据类型。有办法做到这一点吗?

>>> np.array(mtest)

array([[',', '7.174707364110744'],
['the', '5.260736372733581'],
['.', '2.630943297842565'],
['of', '2.505952403774265'],
['and', '2.309647686709941'],
['a', '1.7517895552087845'],
['to', '1.7414375486448457'],
[';', '1.5612359529022042']],
dtype='<U18')

>>> np.array(mtest, dtype=[('token', np.unicode_, 64),('perc', np.float)])

array([(',', 7.174707364110744), ('the', 5.260736372733581),
('.', 2.630943297842565), ('of', 2.505952403774265),
('and', 2.309647686709941), ('a', 1.7517895552087845),
('to', 1.7414375486448457), (';', 1.5612359529022042)],
dtype=[('token', '<U64'), ('perc', '<f8')])

最佳答案

正如 @Ashwini 评论的那样,这些既不是列表的列表,也不是元组的列表,它们都是 numpy 数组。您仍然可以从该新数组访问“列”(此处实际上称为“字段”)和“行”(实际上称为“记录”)。我不建议将其转换为任何内容的列表。

a = np.array(mtest, dtype=[('token', np.unicode_, 64),('perc', np.float)])

>>> a['token']
array([',', 'the', '.', 'of', 'and', 'a', 'to', ';'],
dtype='<U64')

>>> a['perc']
array([ 7.17470736, 5.26073637, 2.6309433 , 2.5059524 , 2.30964769,
1.75178956, 1.74143755, 1.56123595])

>>> a[2]
('.', 2.630943297842565)

上面不是元组:

>>> type(a[2])
numpy.void

>>> a[2].dtype
dtype([('token', '<U64'), ('perc', '<f8')])

关于python - 如何让 Numpy 给出列表数组而不是元组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26947447/

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