Как мне сделать вычитание по столбцам, используя numpy? - PullRequest
0 голосов
/ 10 февраля 2019

Допустим, у меня есть:

array([[ 5,  4,  3,  3],
       [ 5,  4,  3,  3],
       [ 5,  4,  3,  3],
       [ 5,  4,  3,  3],
       [ 5,  4,  3,  3]])

А затем у меня есть

array([1, 2, 3, 4])

Я хочу вычесть каждый столбец в исходной матрице из соответствующего столбцазначение в массиве 1d.

Итак, я хочу, чтобы оно стало

array([[ 4,  2,  0,  -1],
       [ 4,  2,  0,  -1],
       [ 4,  2,  0,  -1],
       [ 4,  2,  0,  -1],
       [ 4,  2,  0,  -1]])

Как этого достичь в numpy?

1 Ответ

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

Это намного проще, чем вы думаете:

In [1]: import numpy as np

In [2]: arr = np.array([[ 5,  4,  3,  3],
    ...:                [ 5,  4,  3,  3],
    ...:                [ 5,  4,  3,  3],
    ...:                [ 5,  4,  3,  3],
    ...:                [ 5,  4,  3,  3]])

In [3]: sub = np.array([1, 2, 3, 4])

In [4]: arr - sub
Out[4]:
array([[ 4,  2,  0, -1],
       [ 4,  2,  0, -1],
       [ 4,  2,  0, -1],
       [ 4,  2,  0, -1],
       [ 4,  2,  0, -1]])

NumPy транслирует автоматически, поэтому просто используйте оператор -!

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