【发布时间】:2016-02-07 20:29:52
【问题描述】:
我正在为一个课程研究价格加权指数,虽然这是一个非常简单的手工计算,但我认为这对我的 Python 新手技能来说是一个很好的练习。
编辑 这就是我现在正在使用的代码
StockBPrice = np.array([35.1, 45.6, 41.5, 47.8])
StockCPrice = np.array([52, 67.6, 61.5, 67.7])
StockDPrice = np.array([89.5, 107.4, 53.7, 64.4])
QuantityB = np.array([300,300,300,300])
QuantityC = np.array([400,400,400,400])
QuantityD = np.array([100,100,200,200])
PriceArray = []
for i in range(0,1):
if np.argwhere(StockBPrice) < 2:
PriceArray.append((StockBPrice+StockCPrice+StockDPrice)/3)
else:
d = (StockBPrice[2]+StockCPrice[2]+StockDPrice[2])/((StockBPrice[1]+StockCPrice[1]+StockDPrice[1])/float(3.0))
PriceArray.append((StockBPrice+StockCPrice+StockDPrice)/d)
PriceArray = np.array(PriceArray)
print PriceArray
我想使用索引作为条件,但np.argwhere 给出了一个布尔值,但这是我想要使用的一般想法。
【问题讨论】:
-
能否解释一下您想要的结果背后的数学原理?你到底想计算什么?循环的目的是什么?
-
len(StockBPrice < 2)将始终是数组的长度,使用 numpy 数组。你可以通过StockBPrice < 2来测试它并查看输出