Np.Argwhere产生数字

2024-06-06 23:29:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为一个类编写价格加权指数,虽然这是一个非常简单的手工计算,但我认为这对于我的初级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给出了一个布尔值,但这是我想使用的一般思想。在


Tags: 代码编辑技能np价格array手工append
2条回答

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

if len(StockBPrice) < 2:

那么另一个条件应该是

^{pr2}$

不过,最好使用if-else来处理代码。所以最好是这样格式化代码:

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

很容易

if len(StockBPrice) < 2:

相关问题 更多 >