[英]Plotting occurrences for values higher than a threshold in Python
我有一个非均匀数组'A'。
A = [1,3,2,4,..., 12002, 13242, ...]
我想探讨数组“ A”中有多少个元素的值高于某些阈值。
例如,有1000个值大于1200的元素,因此我想绘制值大于1200的元素的数量。此外,还有其他1500个值大于110的元素(其中包括1000个元素,其值大于1200)。
这是一个相当大的数据集,因此我不想忽略任何信息。
然后,我想绘制值A相对于Log(A)上方的元素“ N”的数量,即
**'Log N(> A)" vs. 'Log (A)'**.
我本来想对数据进行分箱,但是却没有成功。 我在python中没有做太多的统计,所以我想知道是否有一个很好的方法来绘制这些数据?
提前致谢。
让我对我们拥有的东西再做个破解:
A = [1, 3, 2, 4, ..., 12002, 13242, ...]
# This is a List of 12,000 zeros.
num_above = [0]*(12000)
# Notice how we can re-write this for-loop!
for i in B:
num_above = [val+1 if key <= i else val for key,val in enumerate(num_above)]
我相信这就是您想要的。 最终列表num_above
将使得num_above[5]
等于A
中大于5的元素数。
说明 :
最后一行是所有魔术发生的地方。 它遍历A( i
)中的元素, num_above
所有索引小于i
的元素加一个。
enumerate(A)
语句是一个枚举器,它生成元组的迭代器,该元组包括A中所有元素的键和值: (0,1) (1,3) -> (2,2) -> (3,4) -> ...
同样, num_above = [x for y in List]
语句称为List Comprehension ,它是Python中一个非常强大的工具。
改进 :我看到您已经修改了您的问题以包括这些更改,但是我认为它们很重要。
numpy
依赖项。 在可能的情况下,消除依赖关系会降低项目的复杂性,尤其是大型项目。 A
可以用基本上像A = range(12000)
东西代替。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.