Num Pythonic способ выполнения векторного вычитания, когда операнды имеют разную форму (a,n) - (b,n)Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Num Pythonic способ выполнения векторного вычитания, когда операнды имеют разную форму (a,n) - (b,n)

Сообщение Anonymous »

У меня есть два таких матричных операнда:

Код: Выделить всё

a = np.array([[1,2], [3,4], [5,6], [7,8]])
b = np.array([[9,10], [11,12], [13,14]])
Если мы отладим a и b, они будут выглядеть так:

Код: Выделить всё

[[1 2]
[3 4]
[5 6]
[7 8]]
(4, 2)
int32

[[ 9 10]
[11 12]
[13 14]]
(3, 2)
int32
С помощью этого способа я могу добиться того, чего хочу, где c — результат:

Код: Выделить всё

c = []
for i in range(b.shape[0]):
c.append(b[i] - a)
c = np.array(c)
Теперь c будет выглядеть так:

Код: Выделить всё

[[[ 8  8]
[ 6  6]
[ 4  4]
[ 2  2]]

[[10 10]
[ 8  8]
[ 6  6]
[ 4  4]]

[[12 12]
[10 10]
[ 8  8]
[ 6  6]]]
(3, 4, 2)
int32
Как вы видите, то, как я выполняю вычитание, все еще использовалось для цикла, существует ли numpythonic способ, с помощью которого я могу вычитать без использования цикла, чтобы я мог использовать оптимизацию numpy, следовательно, производительность будет быстрее, поскольку numpy использует язык C.

Подробнее здесь: https://stackoverflow.com/questions/781 ... -different
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»