NumPy - Как бы я векторизовал эту операцию? - PullRequest
1 голос
/ 28 февраля 2020

Мне нужно взять массив измерений (M, 4) и вычесть элементы, чтобы получить массив (M, 2).

Например:

[[1, 2, 3, 4],
 [5, 6, 7, 8]]

# to

[[2, 2],
 [2, 2]]

То, что я пробовал, было следующее:

subs = a[..., 2] - a[..., 0], a[..., 3] - a[..., 1]

Но это возвращается в виде двух массивов с размерностью (M,).

1 Ответ

4 голосов
/ 28 февраля 2020

Вы можете сделать представления вашего массива, а затем вычесть два представления, например:

a<b>[:,2:]</b> - a<b>[:,:2]</b>

Например, для некоторого примера ввода:

>>> a
array([[5, 2, 9, 2],
       [9, 9, 7, 9]])
>>> a[:,2:] - a[:,:2]
array([[ 4,  0],
       [-2,  0]])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...