我可能会遗漏一些明显的东西,但我缺少一个函数numpy.map.那将是与
Python的map函数相同,但是在numpy数组中收集输出.例如,我可以有一个图像生成器genImage(i)基于单个输入生成一个2D图像(大小(m,n)),我想输入范围(k)到我的生成器函数并获得一个(k,m,n)数组.
目前,我会使用numpy.array(list(genImage,range(k))),但我觉得这个转换成列表是相当低效的(我的最终数组大小约为50 GB).我正在寻找对于numpy.map(genImage,range(k)),它类似于numpy.fromiter,但是对于迭代器的多维输出.
(我已经尝试了np.array(map(…)),但是返回一个带有地图的单元素数组,因为它是唯一的条目 – 这就是为什么:Why is it required to typecast a map into a list to assign it to a pandas series?)
有没有更好的方法来实现我想要的?我正在寻找一种理想的方式,我可以使用joblib.
最佳答案 如果我找对你,你需要
column_stack这样的工作方式:
import numpy as np
a = np.array([[1, 2], [3, 4], [5, 6]])
a = np.column_stack((range(3), a))
a
[[0 1 2]
[1 3 4]
[2 5 6]]