我这里有一个大问题,我正在与numpy合作,并试图更好地理解它,但我在实现我的目标的路上遇到了一些小问题。你知道吗
这是我的密码。你知道吗
product_test = []
product_test.append({
'min-dkk' : 149.9,
'min-procent' : 100.0,
'max-dkk' : 249.9,
'max-procent' : 0.0,
'cost-price' : 400.0
})
product_test.append({
'min-dkk' : 150.1,
'min-procent' : 0.0,
'max-dkk' : 0.0,
'max-procent' : 10,
'cost-price' : 1000.0
})
product_test.append({
'min-dkk' : 25.0,
'min-procent' : 5000.0,
'max-dkk' : 100.0,
'max-procent' : 0.0,
'cost-price' : 10.0
})
# print(product_test)
list_product = None
for test in product_test:
if list_product is None:
list_product = np.array([[test['min-dkk'],test['min-procent'],test['max-dkk'],test['max-procent'],test['cost-price']]])
else:
product_price_data = np.array([[test['min-dkk'],test['min-procent'],test['max-dkk'],test['max-procent'],test['cost-price']]])
list_product = np.vstack((list_product, product_price_data))
print('')
print(list_product)
list_product[:,0] += 0.0 if list_product[:,0] == 0 else list_product[:,4]
list_product[:,1] = 0.0 if (list_product[:,4] + ((list_product[:,4]/100) * list_product[:,1])) == list_product[:,4] else (list_product[:,4] + ((list_product[:,4]/100) * list_product[:,1]))
list_product[:,2] += 0.0 if list_product[:,2] == 0 else list_product[:,4]
list_product[:,3] = 0.0 if (list_product[:,4] + ((list_product[:,4]/100) * list_product[:,3])) == list_product[:,4] else (list_product[:,4] + ((list_product[:,4]/100) * list_product[:,3]))
如果我只在numpy数组中的一行上运行这个代码,它工作正常,如果我运行这个代码,我将得到错误
list_product[:,0] += 0.0 if list_product[:,0] == 0 else
list_product[:,4]
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
我的想法是,如果一个值大于0(零),我想基于该值对字段进行多重显示,当我只对一个数组行执行此操作时,它可以正常工作,但当我对多行执行此操作时,会出现此错误,我试着去读它,我不想返回“真/假”,我想做我的数学,如果它与零不同,因为价格规则在我们的动态范围内可以是正的,也可以是负的。你知道吗
numpy的等效值为:
条件现在被求值为boolean类型的数组,强制转换为list\u product类型(1表示true,0表示false),然后与可能要添加的数组相乘。你知道吗
相关问题 更多 >
编程相关推荐