轻松将列表列表转换为用于大数据的 numpy Multidim 数组
Posted
技术标签:
【中文标题】轻松将列表列表转换为用于大数据的 numpy Multidim 数组【英文标题】:Easily converting List of lists to numpy Multidim array for big data 【发布时间】:2018-01-15 18:57:17 【问题描述】:假设我有 '3 deep' 列表列表
len(list) --> 500
len(list[0]) --> 25
len(list[0][0]) --> 100
我想转换成一个形状为 (500, 25, 100) 的 numpy 数组。以计算方式进行此操作的最有效方法是什么?假设列表非常非常大。
【问题讨论】:
np.asarray()
?
【参考方案1】:
您的清单:
l = [[[1,2],[3,4]],[[5,6],[7,8]],[[9,10],[11,12]]]
你的 numpy 数组:
arr = np.array(l)
#array([[[ 1, 2],
# [ 3, 4]],
#
# [[ 5, 6],
# [ 7, 8]],
#
# [[ 9, 10],
# [11, 12]]])
【讨论】:
【参考方案2】:我假设你想转换它,然后想在它的索引上运行一个循环:
l=[[[1,2],[3,4]],[[5,6],[7,8]],[[9,10],[11,12]]]
# convert
a=np.asarray(l)
# loop
for (ix,iy,iz),val in np.ndenumerate(a):
print(ix, iy, iz, a[ix,iy,iz])
给予
0 0 0 1
0 0 1 2
0 1 0 3
0 1 1 4
1 0 0 5
1 0 1 6
1 1 0 7
1 1 1 8
2 0 0 9
2 0 1 10
2 1 0 11
2 1 1 12
【讨论】:
以上是关于轻松将列表列表转换为用于大数据的 numpy Multidim 数组的主要内容,如果未能解决你的问题,请参考以下文章
Keras:ValueError:无法将 NumPy 数组转换为张量(不支持的对象类型列表)