У меня есть ситуация, когда у меня есть ndarray X floats, скажем, 100x10, и я хочу посмотреть некоторые условия на первый столбец и создать логический ndarray B формы 100x1. Затем я хочу использовать B как индекс в X, чтобы вытащить значения, где находится True. Однако для каждого True в B я хочу вытащить всю строку X. Я думал, что это будет работать автоматически, так как B будет транслироваться до формы 100x10. Однако похоже, что это не так. Вот пример использования 2x2 и 2x1 ndarrays.numpy: broadcasting ndarray of booleans
a = np.array([True, False])
a.shape = (2,1)
b = np.array([1, 2, 3, 4])
b.shape = (2,2)
print(a)
print(b)
print(b[a])
Печатается
[[True]
[False]]
[[ 1 2 ]
[ 3 4 ]]
[1]
Я ожидал, что это напечатать [1 2]
. Почему трансляция работает так, как я ожидаю?
просто избавиться от линии, где вы изменили свою форму ... –