NumPy 教程

NumPy 笔记

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/numpy-counts-for-unique-values-in-an-array.html

numpy 根据数组的值进行聚合统计(如每个值的个数)

numpy 笔记 numpy 笔记


如何从 numpy 数组中,统计每个值出现的个数,可以利用 python 标准库的 collections 模块提供的计数器类 Counter,也可以通过 numpy 的 unique 函数进行操作;如 numpy 数组的每个值对应样本特征索引时,可以先统计特征的分布进行数据分析。

collections.Counter

collections 模块的 Counter 对象可以支持针对 numpy 数组的快速计数,它本身是 dict 的子类,具体示例如下:

import numpy as np
from collections import Counter

arr = np.array([1, 2, 6, 8, 2, 4, 7, 9, 1, 2, 5, 6, 8, 8, 8])
counter = Counter(arr)
print(counter)

#   返回一个列表,包含 counter 中 n 个最大数目的元素
print(counter.most_common(3))

输出如下:

Counter({8: 4, 2: 3, 1: 2, 6: 2, 4: 1, 7: 1, 9: 1, 5: 1})
[(8, 4), (2, 3), (1, 2)]

numpy 的 unique 函数

也可以用 numpy 的 unique 函数,该函数多用于数组值去重,但是通过设置 return_counts=True 可以作为值计数用,具体示例如下:

import numpy as np
from collections import Counter

arr = np.array([1, 2, 6, 8, 2, 4, 7, 9, 1, 2, 5, 6, 8, 8, 8])

unique, counts = np.unique(arr, return_counts=True)
print(unique)
print(counts)
print(np.asarray((unique, counts)).T)

输出如下:

[1 2 4 5 6 7 8 9]
[2 3 1 1 2 1 4 1]
[[1 2]
 [2 3]
 [4 1]
 [5 1]
 [6 2]
 [7 1]
 [8 4]
 [9 1]]

 

函数语法range(stop)range(start,stop[,step])参数:start:起始值(默认为0)。需要注意的是,range ...
如何使用 awk 命令统计某列的值的聚合计算出现次数,并以列值的大小进行排序? ...
NumPy 有很多有用的统计函数,用于从数组中给定的元素中查找最小,最大,百分标准差和方差等。函数说明如下: ...
elasticsearch(es)如何获取某个字段的所有不同的值及其对应的个数? ...
Elasticsearch 的聚合功能十分强大,可在数据上做复杂的分析统计。它提供的聚合分析功能有指标聚合(metrics aggregat ...