我需要使用数组来进行一些计算。我有以下数据:
x = [[81, 68, 71, 71, 67, -72], [79, 77, 88, 88, 59, -71], [67, 71, 68, 68, 85, -66]]
我需要处理数据并从每一列中提取正值和负值的数量,因此输出应该是这样的:
positive_value = [3,3,3,3,0]
negative_vaue = [0,0,0,0,3]
我尝试使用 for
循环但没有成功,也使用 Numpy,但我真的不知道如何使用它。
获得该结果的最佳方法是什么?
原文由 Ben2pop 发布,翻译遵循 CC BY-SA 4.0 许可协议
可能最优雅的方法是先将其转换为 numpy 数组,然后对其执行条件
>= 0
,然后在第一个轴上计算sum(..)
:这然后产生:
因此,通过使用
np.array(x) >= 0
,我们获得了一个二维布尔数组:由于
True
计为一,而False
为零,通过计算每列的总和,我们因此计算正数的数量。如果你想 严格 计算正数(所以只大于零),你应该省略
=
在>=
: