如何将简单的列表转换为numpy数组?行是单独的子列表,每行包含子列表中的元素。
当前回答
正如在其他回答中提到的,np.vstack()将允许您将列表的列表(嵌套列表)转换为子列表的1维数组。但是如果你想把列表的列表转换成2维的numpy.ndarray。然后可以使用numpy.asarray()函数。
例如,如果你有一个名为y_true的列表,看起来像:
[[0, 1, 0], [1, 0, 0], [0, 0, 1], [1, 0, 0], [0, 1, 0], [0, 0, 1], [1, 0, 0]]
<class 'list'>
这一行y_true = np.asarray(y_true)将把列表的列表转换为一个2维numpy ndarray,看起来像这样:
[[0 1 0]
[1 0 0]
[0 0 1]
[1 0 0]
[0 1 0]
[0 0 1]
[1 0 0]]
<class 'numpy.ndarray'>
此外,您还可以像np一样指定dtype参数。Asarray (y_true, dtype = float)将数组值设置为所需的数据类型。
其他回答
就用熊猫吧
list(pd.DataFrame(listofstuff).melt().values)
这只适用于列表的列表
如果你有一个列表的列表的列表,你可能想尝试一些沿着
lists(pd.DataFrame(listofstuff).melt().apply(pd.Series).melt().values)
>>> numpy.array([[1, 2], [3, 4]])
array([[1, 2], [3, 4]])
正如在其他回答中提到的,np.vstack()将允许您将列表的列表(嵌套列表)转换为子列表的1维数组。但是如果你想把列表的列表转换成2维的numpy.ndarray。然后可以使用numpy.asarray()函数。
例如,如果你有一个名为y_true的列表,看起来像:
[[0, 1, 0], [1, 0, 0], [0, 0, 1], [1, 0, 0], [0, 1, 0], [0, 0, 1], [1, 0, 0]]
<class 'list'>
这一行y_true = np.asarray(y_true)将把列表的列表转换为一个2维numpy ndarray,看起来像这样:
[[0 1 0]
[1 0 0]
[0 0 1]
[1 0 0]
[0 1 0]
[0 0 1]
[1 0 0]]
<class 'numpy.ndarray'>
此外,您还可以像np一样指定dtype参数。Asarray (y_true, dtype = float)将数组值设置为所需的数据类型。
其实很简单:
>>> lists = [[1, 2], [3, 4]]
>>> np.array(lists)
array([[1, 2],
[3, 4]])
我有一个等长的列表。即使在那时,伊格纳西奥·巴斯克斯-艾布拉姆斯的答案对我来说也不奏效。我得到了一个一维numpy数组,它的元素是列表。如果你遇到同样的问题,你可以使用下面的方法
使用numpy.vstack
import numpy as np
np_array = np.empty((0,4), dtype='float')
for i in range(10)
row_data = ... # get row_data as list
np_array = np.vstack((np_array, np.array(row_data)))
推荐文章
- TypeError: ` NoneType `对象在Python中不可迭代
- 如何在Vim注释掉一个Python代码块
- python标准库中的装饰符(特别是@deprecated)
- 如何从外部访问本地Django web服务器
- 删除字符串的最后3个字符
- 在python中执行no-op的标准方法是什么?
- 如何从生成器构建numpy数组?
- 什么时候我应该(不)想要在我的代码中使用熊猫apply() ?
- 数据类vs类型。NamedTuple主要用例
- 如何从macOS完全卸载蟒蛇
- 是否有可能键入提示一个lambda函数?
- 'dict'对象没有has_key属性
- 使用Pandas groupby连接来自几行的字符串
- Pandas:给定列的数据帧行之和
- 如何避免在为Python项目构建Docker映像时重新安装包?