Np.Argwhere生成数字

时间:2016-02-07 20:29:52

标签: python arrays numpy

我正在研究一个班级的价格加权指数,虽然这是一个非常简单的手工计算,但我觉得这对我的新手蟒蛇技能来说是个好习惯。

修改 所以这是我现在正在使用的代码

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给出了一个布尔值,但这是我想要使用的一般想法。

2 个答案:

答案 0 :(得分:1)

非常简单

if len(StockBPrice) < 2:

答案 1 :(得分:0)

在您的代码中,不处理长度等于2的条件。如果你有这个条件陈述

if len(StockBPrice) < 2:

那么另一个条件应该是

if len(StockBPrice) >= 2:

但是,最好使用if else来玩代码。所以最好像这样格式化你的代码:

if len(StockBPrice) < 2:
    do something
else:
    do something else