У меня есть список, который контролирует, какие условия в списке данных должны быть умноженыусловный продукт в NumPy
control_list = [1, 0, 1, 1, 0]
data_list = [5, 4, 5, 5, 4]
Мне нужно найти произведение элементов в data_list
, для которых control_list
имеет 1
. Моя нынешняя попытка наивна и выглядит уродливой!
product = 1
for i in range(len(control_list)):
if control_list[i]:
product *= data_list[i]
Я смотрел на numpy.where()
, чтобы получить необходимые элементы в data_list
, но, похоже, я не получил это право:
numpy.where(control_list, data_list)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-12-1534a6838544> in <module>()
----> 1 numpy.where(control_list, data_list)
ValueError: either both or neither of x and y should be given
Мой вопрос, могу ли я сделать это как-то с помощью NumPy более эффективно?
гы! мне это не показалось, это было так просто! благодаря :) – okkhoy