将元组中的列表转换为numpy数组?

Posted

技术标签:

【中文标题】将元组中的列表转换为numpy数组?【英文标题】:Convert list in tuple to numpy array? 【发布时间】:2011-01-25 01:05:40 【问题描述】:

我有列表元组。这些列表之一是分数列表。我想将分数列表转换为 numpy 数组,以利用 scipy 提供的预构建统计信息。

在这种情况下,元组称为“数据”

In [12]: type data[2]
-------> type(data[2])
Out[12]: <type 'list'>

In [13]: type data[2][1]
-------> type(data[2][1])
Out[13]: <type 'list'>

In [14]: type data[2][1][1]
-------> type(data[2][1][1])
Out[14]: <type 'float'>

In [15]: print data[2][1]
-------> print(data[2][1])
[16.66, 16.66, 16.66, 16.66, 5.5599999999999996, 16.699999999999999]

In [16]: print data[2][1][1]
-------> print(data[2][1][1])
16.66

一旦我存储了元组,我可以很容易地做到这一点吗?

【问题讨论】:

【参考方案1】:

命令numpy.asarray 会将多个预先设置的可迭代容器(列表、元组等)变成一个numpy数组。

【讨论】:

+1 for numpy.asarray 它非常强大,只是一个注释。它是返回一个深拷贝还是仅仅返回输入数组的另一个视图? @linello:如果需要,它会复制,例如当输入是 Python 内置的序列类型时。 不,这并不总是有效,因此为-1。例如。 x = np.asarray((1,2,3,4,5)) 哈哈,这个问题和答案都是11岁! @Imago 在 numpy 1.19.2 和 python 3.10 上,以及这里的 numpy 的早期版本,asarray does 适用于元组:您的测试代码给了我一个 numpy 数组。你看到了什么错误?

以上是关于将元组中的列表转换为numpy数组?的主要内容,如果未能解决你的问题,请参考以下文章

如何将元组列表转换为 pandas 数据框,以便每个元组的第一个值代表一列?

如何从一个可迭代的元组中填充两个(或更多)numpy 数组?

将元组列表转换为 Pandas 系列

将元组列表转换为字典

将元组列表列表转换为 dict 未按预期工作

将元组列表的字典转换为数据框