python数学计算模块_Python-NumPy模块数学和统计方法(4)

1.前言

使用一组数学函数对numpy数组进行操作的时候,有两种方式计算:对整个数组进行计算;

对源数组的某个轴向的数据进行统计计算;

2.下面是基本的数组统计方法数组统计方法

3.统计函数的分类

下面的所有统计方法,即可以当做数组的实例方法调用,也可以当做顶级numpy函数使用。

import numpy as nparr = 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,那么如何去理解非聚合计算的结果由中间值组成的数组呢?axis = 0的时候,知道他是从行的角度去考虑函数,那如果是一般的聚合计算的函数,如sum...他们返回的是一个向量。但是对于非聚合计算的函数,他们返回的数组shape函数原来数组的shape,他们每一行的值都是上一行值与本行值的和(当然如果使用cumprop方法的话就是上一行值与本行值的积)。

axis = 1的时候,其实和axis = 0的一样,只不过是这里的方向是从列的方向去考虑,也就是shape还和源数组的shape相同,但是其中每一列的值就是本列与上一列的值组成的新列(当然如果使用cumprop方法的话就是上一行值与本行值的积)。

你可能感兴趣的:(python数学计算模块)