使用一组数学函数对Numpy数组进行操作有两种计算方式:
基本数组统计方法
▲数组统计方法
统计函数的分类
下面的所有统计方法,即可以当做数组的实例方法调用,也可以当做Numpy函数来调用。
▲统计函数
import numpy as np
arr = np.random.randn(5,4)
print(np.xxx(arr))
print(arr.xxx())
聚合计算(aggregation,通常叫做约简(reduction))。非聚合计算就是方法调用返回的结果是一个由中间结果组成的数组。
▲聚合计算的方法
import numpy as np
arr = np.random.randn(5,4)#正太分布数据
print("数组中元素求和:",arr.sum())
print("算术平均数:",arr.mean())
print("标准差和方差:",arr.std(),arr.var())
print("最大值和最小值:",arr.max(),arr.min())
数组中元素求和: -2.84952437344
算术平均数: -0.142476218672
标准差和方差: 0.896244709803 0.803254579849
最大值和最小值: 1.95081773969 -1.87576739314
而cumsum以及cumprod方法就是非聚合方法,它们返回的是由中间结果组成的一个数组,这样说有点不好理解,下面我使用小例子来具体的说明。
依然是以最简单的二维数组为例进行说明:
import numpy as np
arr = np.arange(12).reshape(3,4)
print(arr)
print('-----axis = 0-----')
arr_axi0 = np.cumsum(arr,axis = 0)
print(arr_axi0)
print('-----axis = 1-----')
arr_axi1 = np.cumsum(arr,axis = 1)
print(arr_axi1)
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
-----axis = 0-----
[[ 0 1 2 3]
[ 4 6 8 10]
[12 15 18 21]]
-----axis = 1-----
[[ 0 1 3 6]
[ 4 9 15 22]
[ 8 17 27 38]]
Numpy中二维数组的axis的值与行和列之间的关系如下图所示。
▲二维数组的axis
由此我们也可以看出对于二维数组参数axis的值只能是0或1,那么如何去理解非聚合计算的结果由中间值组成的数组呢?