【发布时间】:2020-04-28 16:47:24
【问题描述】:
我正在尝试将生成器转换为 numpy 数组。我在数据列表上应用了一个 map 函数,结果是一个生成器。我尝试做 list(map()) 然后创建 numpy 向量,但这需要很长时间。我在某处看到我可以直接使用 np.fromiter 从我的生成器创建一个 numpy 向量。但是,我遇到了这个错误:
ValueError: setting an array element with a sequence.
我发现错误上升是因为我的生成器生成了一个列表列表。比如:[[1,2,3], [4,5,6]],我应该为fromiter() 函数使用适当的结构dtype。我找不到执行此操作的方法的正确解释。你能帮助我吗?
这是一个完整的例子:
import numpy as np
def foo(bar):
return [bar] * 3 # so for 4 it returns [4,4,4], ..
a = [1,2,3,4,5,6,7]
b = map(foo,a)
c = np.fromiter(b, int) # this doesn't work.
【问题讨论】:
-
请发布 MCVE
-
好的。我会尽快编辑帖子。
标签: python-3.x numpy generator