python的新手,需要一些帮助 . 我有一个numpy数组元组,形状为(1,8760),每个8760位置都有数字 . 我一直试图计算值是否介于-2和2之间,然后我的新变量将为0,否则只需在新变量中保持相同的值 . 这是我尝试过的和许多其他人,但我可能完全不理解阵列概念 .
for x in flow:
if 2 > x < -2:
lflow = 0
else:
lflow = flow
我收到此错误:
ValueError:具有多个元素的数组的真值是不明确的 . 使用a.any()或a.all()
从我读到的那些函数给我一个真或假,但我想计算 Value 而不是告诉我它是否匹配 . 请帮忙 .
谢谢
2 回答
如果您的形状是(1,8760),则在迭代中为x分配了8760个元素的数组,因为循环迭代包含一个大小为8760的元素的第一个轴 . 此外,我建议使用“where”函数而不是环:
Numpy使用布尔掩码来批量选择或赋值给数组 . 例如,给定数组
此掩码表示A中小于-2或大于2的所有值
然后使用它将这些值分配给0
这比在python中使用常规循环快得多,因为numpy将在c或fortran代码中执行此操作