Как построить матрицу на основе массива в NumPy? - PullRequest
1 голос
/ 20 марта 2012

Я пытаюсь выполнить функцию итеративно для массива и создать матрицу, состоящую из того, что он возвращает.Если бы это был нативный python, я бы сделал следующее:

[func(x, y) for y in xrange(Y)]

, но если я сделаю это, мне нужно обернуть его с помощью numpy.matrix (), чтобы векторизовать его.Что такое тупой способ сделать это?Сейчас я инициализирую матрицу нулей, а затем заполняю ее элементами, полученными из цикла for, но это кажется неэффективным.

1 Ответ

2 голосов
/ 20 марта 2012

Взгляните на учебник numpy , особенно на часть, посвященную универсальным функциям или функциям.Ufunc:

Функции, которые работают элемент за элементом на целых массивах.

, что звучит так, как вы просите.Имейте в виду, что вам, вероятно, не нужно писать свой собственный ufunc, а просто пишите func в терминах существующих ufuncs.Например:

def hypot(a, b):
    return np.sqrt(a**2 + b**2)

>>> a = np.array([3., 5., 10.])
>>> b = np.array([4., 12., 24.,])
>>> hypot(a, b)
array([  5.,  13.,  26.])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...