булевы индексы вещания - PullRequest
       7

булевы индексы вещания

0 голосов
/ 16 сентября 2018

Как переписать этот цикл Python, используя широковещательную трансляцию?

>>> values.shape
(50000,)
>>> tests.shape  # booleans
(200, 50000)

>>> extracted = values[tests]
# FAILES

>>> extracted = values[test] for test in tests]
>>> extracted.shape
(200,)
>>> extracted[0].shape
(33,)
>>> extracted[1].shape
(468,)

Необычное / логическое индексирование здесь не работает как обычно.

1 Ответ

0 голосов
/ 17 сентября 2018

как насчет этого?если вы просто хотите быстро получить размер каждой строки.

>>> values.shape
(50000,)
>>> tests.shape  # booleans
(200, 50000)

>>> extracted = np.prod((tests,values))
>>> extracted.shape
(200,50000)
>>> rows, cols = extracted.nonzero()
>>> cols[rows==0].shape
(33,)
>>> cols[rows==1].shape
(468,)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...