1
У меня есть матрица M размера mxn и вектор-столбец mx 1. Для каждой из т строк мне нужно получить индекс, соответствующий значению в векторе-столбце минус 1. Таким образом, давая мне ответ mx 1. Как я могу это сделать?Индексирование матрицы по вектору столбца
zb=a1.a3[np.arange(a1.z3.shape[0]),a1.train_labels-1]
zb.shape
Out[72]: (4000, 4000)
a1.z3.shape
Out[73]: (4000, 26)
a1.train_labels.shape
Out[74]: (4000, 1)
a1.train_labels.head()
Out[75]:
22
1618 25
2330 1
1651 17
133 17
2360 5
#my column vector a1.train_labels is shuffled. I don't want to unshuffle it.
Это не работает, как показано в моем примере. Попробуйте перетасовать вектор столбца 'random_perm = np.random.permutation (data_size) train_labels = train_labels.iloc [random_perm]' –
@AbhishekBhatia В моем примере он работает после использования 'np.random.permutation', поэтому я думаю, что проблема в том, где вы превращаете вещи в массивы 'numpy' (оттуда они работают). Могли бы вы либо отправить точное сообщение об ошибке, которое вы получаете, либо какой-то минимальный автономный пример? (предпочтительно оба). –