Взять значение из определенного столбца для каждой строки - PullRequest
0 голосов
/ 09 января 2019

У меня есть массив X с некоторыми значениями

[[0.3,0.4,0.5],
 [0.1,0.7,0.9],
.
.
.
[0.3,0.6,0.9]]

у меня есть массив с индексами I =[0,2,1,2,0,..].

Я хотел бы получить значение из массива X для каждой строки в соответствии с индексом в массиве I, например, в массиве I первое значение равно 0, поэтому из первой строки в I будет принимать значение из столбец 0, который 0.3 и т. д. Есть ли возможность сделать это без цикла?

Моя идея: Y = X[:,I] не имеет смысла.

1 Ответ

0 голосов
/ 09 января 2019

Вы были почти у цели, вам нужно какое-то модное индексирование сверху:

Y = X[np.arange(len(I)),I]

Этот вид индексации указывает numpy выбирать записи (i, I(i)) в X.

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