如何处理numpy中的广播/索引问题?

时间:2018-12-04 03:55:11

标签: python-3.x numpy numpy-broadcasting

我一直试图用numpy找出一些东西,希望有人对此软件包有一定的经验可以帮助我。我有一个二维价格数组,并附带一个数组,告诉我是否应该使用这些价格:

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]])

我还拥有3 d的数组,这些价格适用于这些数组。这些代表适用于每个有效价格(即use_prices中为True的价格)的馆藏:

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

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

最后我有一个空值数组,这些值最终将由价格乘以持有量组成。这是一个3维数组,因为有两组持股,然后是12x4价格数组。

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

我想做的是用有效价格的两组持仓量*价格填充值数组。用numpy伪代码,我想这会像这样:

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

任何人都可以告诉我是否有一个很好的方法来执行此操作,如果可以的话,那是什么?任何帮助都非常感谢。

0 个答案:

没有答案