Как мне справиться с этой проблемой вещания / индексации в numpy? - PullRequest
0 голосов
/ 04 декабря 2018

Я пытался что-то придумать, и надеюсь, что кто-нибудь, имеющий некоторый опыт работы с пакетом, сможет мне помочь.У меня есть двумерный массив цен и сопровождающий массив, который говорит мне, следует ли мне использовать эти цены:

prices = np.random.rand(12,4)
use_prices = np.array([[False, False, False, True, True, False, True, True,  True,  False, False, False],
                       [False, False, True,  True, True, True,  False, True, False, False, False, False]])

У меня также есть трехмерный массив холдингов, для которых эти ценыприменять.Они представляют собой авуары, которые применяются для каждой из действительных цен (т. Е. Истинных в use_prices):

holdings = np.array([[[1,0,1,0]],[[0,1,0,1]]])
holdings
array([[[1, 0, 1, 0]],

       [[0, 1, 0, 1]]])

и, наконец, у меня есть пустой массив значений, которые в конечном итоге будутсостоят из цен, умноженных на авуары.Это трехмерный массив, потому что есть два набора холдингов, а затем массив цен 12x4.

values_array = np.full((2,12,4), np.nan)

Я хотел бы заполнить массив значений ценами холдингов * длядва набора холдингов, по действующим ценам.В псевдокоде NumPy я представляю, что это будет примерно так:

values_array[use_prices_bool] = (prices * holdings)[use_prices_bool]

Может кто-нибудь сказать мне, есть ли хороший способ сделать это, и если да, то что это?Любая помощь очень ценится.

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