有一些numpy.map吗?

时间:2018-11-02 11:13:39

标签: python numpy

我可能在这里遗漏了一些明显的内容,但是我遗漏了一个函数numpy.map。这将与Python的map函数相同,但是将输出收集在numpy数组中。例如,我可能有一个图像生成器genImage(i),它可以根据单个输入生成2D图像(大小为(m, n)),并且我想将range(k)输入到生成器函数中,获取(k, m, n)数组。

当前,我将使用numpy.array(list(map(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一起使用。

1 个答案:

答案 0 :(得分:1)

如果我答对了,您需要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]]