我有一个非均匀数组'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中做过那么多的统计,所以我想知道是否有一个很好的方法来绘制这些数据?
提前致谢。
答案 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中非常强大的工具。
改进:我看到您已经修改了问题以包含这些更改,但我认为它们非常重要。
numpy
依赖项。如果可能,删除依赖项会降低项目的复杂性,尤其是大型项目。A
。这可以用基本上像A = range(12000)
。