Есть какой-нибудь numpy.map? - PullRequest
       0

Есть какой-нибудь numpy.map?

0 голосов
/ 02 ноября 2018

Я могу упустить что-то очевидное здесь, но мне не хватает функции numpy.map. Это то же самое, что и функция map Python, но собирать выходные данные в массив numpy. Например, у меня может быть генератор изображений genImage(i), который генерирует 2D-изображение (размером (m, n)) на основе одного входа, и я хотел бы ввести range(k) в мою функцию генератора и получить массив (k, m, n) .

В настоящее время я бы использовал numpy.array(list(map(genImage, range(k))), но я чувствую, что это преобразование в список довольно неэффективно (мой конечный массив имеет размер около 50 ГБ). Поэтому я ищу numpy.map(genImage, range(k)), который похож на numpy.fromiter, но для многомерных выходов итератора.

(Я пробовал np.array(map(...)), но он возвращает массив из одного элемента с картой, поскольку он является единственной записью - вот почему: Почему требуется типизировать карту в список, чтобы назначить ее серия панд? )

Есть ли лучший способ добиться того, чего я хочу? Я ищу способ, который в идеале я мог бы использовать с joblib.

1 Ответ

0 голосов
/ 02 ноября 2018

Если я правильно понял, вам нужно 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]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...