Выполнение одной и той же пользовательской операции для нескольких индексов массива - PullRequest
0 голосов
/ 08 февраля 2019
import numpy as np
x = np.random.random((3,3)) #point-set 1
y = np.random.random((3,3)) #point-set 2

neighbors_of_x = np.array([[0,1],[0],[0]])
#^^ contains indices of neighbors of points in x, in y.
#each point can have different number of neighbors in y.

#Below, for every point in x, subtract from its neighbor in y
for i in range(x.shape[0]):
  print(x[i,:] - y[neighbors_of_x[i],:])

Выше приведен типичный пример;Фактические наборы баллов могут иметь 1000 баллов.Следовательно, я хочу «векторизовать» последние 2 строки (для цикла)

Есть ли способ сделать это без цикла for в конце, с каждым индексом i, обрабатываемым параллельно?

Примечание: поскольку neighbors_of_x может иметь различное количество индексов на каждом i, этот массив имеет тип dtype object, и, следовательно, я не могу напрямую использовать его для выбора элементов y

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