可以通过以下的基本统计方法对整个数组或者数组的某个轴的数据进行统计:
方法 | 说明 |
---|---|
sum | 求和 |
mean | 算术平均数 |
std | 标准差 |
var | 方差 |
min | 最小值 |
max | 最大值 |
argmax | 最大元素在指定轴上的索引 |
argmin | 最小元素在指定轴上的索引 |
cumsum | 累积的和 |
cumprod | 累积的乘积 |
示例:
>>> a = np.arange(12).reshape(3,4) >>> a array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]]) >>> a.sum() 66 >>> a.sum(axis=1) array([ 6, 22, 38]) >>> a.mean() 5.5 >>> a.mean(axis=1) array([1.5, 5.5, 9.5]) >>> a.std() 3.452052529534663 >>> a.var() 11.916666666666666 >>> a.max() 11 >>> a.cumsum() array([ 0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66], dtype=int32) >>> a.cumsum(axis=1) array([[ 0, 1, 3, 6], [ 4, 9, 15, 22], [ 8, 17, 27, 38]], dtype=int32) >>> a.cumprod() array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], dtype=int32) >>> a.cumprod(axis=1) array([[ 0, 0, 0, 0], [ 4, 20, 120, 840], [ 8, 72, 720, 7920]], dtype=int32) >>> a.argmin() 0 >>> a.argmax() 11
除了以上的统计方法,还有针对布尔数组的三个重要方法:sum、any和all:
实际上,对于普通的数组,以上三个操作也是可以的。对于any和all函数,将非0的数字都看作True,0看作False。
>>> a array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]]) >>> a.any() True >>> a.all() False >>> b = np.arange(1,3) >>> b array([1, 2]) >>> b.all() True >>> b.any() True >>> x = np.array([[True,False],[True,False]]) >>> x.sum() 2 >>> x.any() True >>> x.all() False >>> c = np.array([-1,2,3+1j]) >>> c.any() True >>> c.all() True