在Python中绘制高于阈值的值的出现次数

时间:2013-06-28 19:35:35

标签: python plot statistics binning

我有一个非均匀数组'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中做过那么多的统计,所以我想知道是否有一个很好的方法来绘制这些数据?

提前致谢。

1 个答案:

答案 0 :(得分:0)

让我对我们所拥有的东西进行另一次破解:

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)语句是enumerator,它生成元组的迭代器,其中包含A中所有元素的键和值:(0,1) (1,3) -> (2,2) -> (3,4) -> ...

此外,num_above = [x for y in List]语句称为List Comprehension,是Python中非常强大的工具。

改进:我看到您已经修改了问题以包含这些更改,但我认为它们非常重要。

  1. 我删除了numpy依赖项。如果可能,删除依赖项会降低项目的复杂性,尤其是大型项目。
  2. 我还删除了原始列表A。这可以用基本上像A = range(12000)
  3. 的东西代替