Применение операции к каждому вектору из двухмерных массивов в python - PullRequest
0 голосов
/ 23 февраля 2019

Мне это нужно для 2-мерных массивов, но также было бы интересно более высокие измерения.Если у меня есть два пустых 2DArrays, скажем, A и B и функция f, которая берет 2 вектора и выдает скаляр.Производительность важна, и операции с массивами очень быстры, поэтому как мне получить матрицу:

(f(a1,b1),f(a1, b2)...)
(f(a2,b1), f(a2,b2)...)
(...                  )

a (i) и b (i) - 1d массивы / векторы

Применяя что-токак f (A, B) и без использования каких-либо циклов.

В некоторых методах я могу использовать axis = 1, но как мне определить свою собственную функцию таким образом или есть другой способ?

1 Ответ

0 голосов
/ 23 февраля 2019

Самое простое и эффективное решение - использовать цикл for.Здесь вам не поможет np.vectorize, потому что он передает скаляры в функцию.

Предполагая, что ваши массивы имеют два столбца:

for a,b in zip(A,B):
    print(f(a[0],b[0]))
    print(f(a[1],b[1]))

выведет значения f, которые вы хотитевернуться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...