1.求最大值和最小值的函数:
最大值:amax(),nanmax(),
最小值:amin(),nanmin()
- amax()和amin()函数用于返回一个数组的最大值和最小值或者是沿轴返回数组的最大值和最小值
- nanmax()和nanmin()函数用于返回忽略任何NaN的数组的最大值和最小值或者是沿轴返回忽略任何NaN的数组的最大值和最小值。
如果数组全是NaN切片,将会出现警告并返回NaN切片:
NaN:not a number
格式:
numpy.amax(a,[axis=None[,out=None[,keepdims=False]]])
参数解读:
- a:输入数据
- axis:指定沿着某个轴来计算最大值,axis=0表示按列,axis=1表示按行,默认值None表示对整个数组
- out:替代输出数组,用于放置结果,默认值为None
- keepdims:默认值为False,输出行维度为1,如果设置为True,则输出列维度为1
- 该函数除了a参数外,其余参数为可选项
import numpy as np
arr=np.array([[0,3,1,5],[2,4,6,1],[2,8,9,2]])
print('原数组为:\n',arr)
原数组为:
[[0 3 1 5]
[2 4 6 1]
[2 8 9 2]]
1.1 array数组的最大值
max1=np.amax(arr)
print(max1)
9
1.2 数组垂直方向的最大值
max2=np.amax(arr,axis=0)
print(max2)
[2 8 9 5]
1.3 数组水平方向的最大值max和amax
max3=np.amax(arr,axis=1)
max4=np.max(arr,axis=1)
print(max3)
print(max4)
[5 6 9]
[5 6 9]
1.4 amin和nanmin函数的区别
arr_a=np.arange(5,dtype=float)
print('定义浮点型数组:\n',arr_a)
定义浮点型数组:
[0. 1. 2. 3. 4.]
arr_a[3]=np.nan
a=np.amin(arr_a)
print('数组的amin为:',a)
b=np.nanmin(arr_a)
print('数组的nanmin为:',b)
数组的amin为: nan
数组的nanmin为: 0.0
2.求沿轴方向的取值范围
使用ptp()函数能返回沿某轴(axis)方向上的最大值与最小值的差值,即maxium-minimum的值形成的数组
格式:numpy.ptp(a,[axis=None[,out=None]])
参数解读:
- a:输入数据
- axis:指定沿着某个轴来计算差值,axis=0表示按列,axis=1表示按行,默认值None表示对整个数组
- out:替代输出数组,用于放置结果,默认为None
- 该函数除了a参数外,其余参数为可选项
arr_p=np.arange(12).reshape((3,4)) #等同于arr_p=np.arange(12).reshape(3,4)
print(arr_p)
#axis=0表示按列计算差值
c=np.ptp(arr_p,axis=0)
#arr_p数组每一列的差值为8 c为差值形成的数组
print('差值形成的数组为:\n',c)
#axis=1表示按行计算差值
d=np.ptp(arr_p,axis=1)
#arr_p数组每一行的差值为3 d为差值形成的数组
print('差值形成的数组为:\n',d)
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
差值形成的数组为:
[8 8 8 8]
差值形成的数组为:
[3 3 3]
3.百分数(不一定要是数组中的元素)
使用percentile()和nanpercentile()函数可以沿某轴(axis)方向计算数组中第q数值的百分数
格式:percentile(a,q[,axis,out,…])
参数解读:
- a:数组或可以转化成数组的对象
- q[0,100]范围的浮点数
- axis:指定沿着某个轴来计算百分位数,axis=0表示按列,axis=1表示按行,默认值None表示对整个数组
- 该函数除了a,q参数外,其余参数为可选项
nanpercentile()函数和percentile()格式相同,只是在计算百分位数时会忽略数组中的nan值
#示例:
arr_n=np.arange(12).reshape(3,4)
print('示例数组为:\n',arr_n)
示例数组为:
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
3.1 使用percentile函数求百分位数
a1=np.percentile(arr_n,50) #相当于求中位数
b1=np.percentile(arr_n,50,axis=0)
c1=np.percentile(arr_n,60,axis=1)
print('\n',a1,'\n',b1,'\n',c1)
5.5
[4. 5. 6. 7.]
[1.8 5.8 9.8]
4.中位数(数值一定是数组中的元素)
median()和nanmedian()函数可以沿某轴(axis)方向计算数组中的中位数
格式:numpy.median(a,[,axis,out,overwrite_input,keepdims])
参数解读:
- a:数组或可以转化成数组的对象
- axis:指定沿着某个轴来计算中位数,axis=0表示按列,axis=1表示按行,默认值None表示对整个数组
- 该函数除了a参数外,其余参数为可选项
nanmedian()函数是计算数组a在沿某轴(axis)方向上忽略nan值的中位数
4.1 使用median求中位数
d1=np.median(arr_n)
e1=np.median(arr_n,axis=0)
f1=np.median(arr_n,axis=1)
print('\n',d1,'\n',e1,'\n',f1)
5.5
[4. 5. 6. 7.]
[1.5 5.5 9.5]
5.求和与加权平均值
sum()函数和average()函数
格式:sum(a[,axis=None])
average(a[,axis=None,weights=None])
参数解读:
- weights:表示权重值
- axis:指定沿着某个轴来计算和或者平均值,axis=0表示按列,axis=1表示按行,默认值None表示对整个数组
- 这两个函数函数除了a参数外,其余参数为可选项
示例:(引用上面的arr_n)
5.1 计算和
print('原数组为:\n',arr_n)
a2=np.sum(arr_n)
b2=np.sum(arr_n,axis=0)
c2=np.sum(arr_n,axis=1)
print(' 数组和为:',a2,'\n',
'按列输出和组成的数组为:',b2,'\n',
'按行输出和组成的数组为:',c2)
原数组为:
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
数组和为: 66
按列输出和组成的数组为: [12 15 18 21]
按行输出和组成的数组为: [ 6 22 38]
5.2 计算权重值为1时的加权平均值
print('原数组为:\n',arr_n)
a3=np.average(arr_n)
b3=np.average(arr_n,axis=0)
c3=np.average(arr_n,axis=1)
print(' 加权平均数为:',a3,'\n',
'按列输出加权平均数组成的数组为:',b3,'\n',
'按行输出加权平均数组成的数组为:',c3)
原数组为:
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
加权平均数为: 5.5
按列输出加权平均数组成的数组为: [4. 5. 6. 7.]
按行输出加权平均数组成的数组为: [1.5 5.5 9.5]
6.算术平均数
算术平均数是搜有元素的总和除以元素的数量。mean()和nanmean()函数可以计算数组或者轴方向的算术平均数
格式:mean(a[,axis=None])
参数解读:
- a:输入数组
- axis:指定沿着某个轴来计算算术平均数,axis=0表示按列,axis=1表示按行,默认值None表示对整个数组
- 这个函数除了a参数外,其余参数为可选项
6.1计算算术平均数
print('原数组为:\n',arr_n)
a4=np.mean(arr_n)
b4=np.mean(arr_n,axis=0)
c4=np.mean(arr_n,axis=1)
print(' 数组平均数为:',a4,'\n',
'按列输出平均数组成的数组为:',b4,'\n',
'按行输出平均数组成的数组为:',c4)
原数组为:
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
数组平均数为: 5.5
按列输出平均数组成的数组为: [4. 5. 6. 7.]
按行输出平均数组成的数组为: [1.5 5.5 9.5]
7.标准差
也叫标准偏差,std()和nanstd()函数计算标准差
格式:numpu.std(a[,axis=None])
参数解读:
- a:输入数组
- axis:指定沿着某个轴来计算标准差,axis=0表示按列,axis=1表示按行,默认值None表示对整个数组
- std()函数除了a参数外,其余参数为可选项
nanstd()函数是计算标准差时忽略nan值
7.1计算标准差
a5=np.std(arr_n)
b5=np.std(arr_n,axis=0)
c5=np.std(arr_n,axis=1)
print(' 数组标准差为:',a5,'\n',
'按列输出标准差组成的数组为:',b5,'\n',
'按行输出标准差组成的数组为:',c5)
数组标准差为: 3.452052529534663
按列输出标准差组成的数组为: [3.26598632 3.26598632 3.26598632 3.26598632]
按行输出标准差组成的数组为: [1.11803399 1.11803399 1.11803399]
8.方差:var()和nanvar()函数
方差是元素与元素的平均数差的平方的平均数mean(abs(x-x.mean())**2)
格式:numpy.var(a[,axis=None,dtype=None])
参数解读:
- a:输入数组
- axis:指定沿着某个轴来计算方差,axis=0表示按列,axis=1表示按行,默认值None表示对整个数组
- dtype:数据类型
- var()函数除了a参数外,其余参数为可选项
nanvar()函数是计算方差时忽略nan值
8.1 计算方差
a6=np.var(arr_n)
b6=np.var(arr_n,axis=0)
c6=np.var(arr_n,axis=1)
print(' 数组方差为:',a6,'\n',
'按列输出方差组成的数组为:',b6,'\n',
'按行输出方差组成的数组为:',c6)
数组方差为: 11.916666666666666
按列输出方差组成的数组为: [10.66666667 10.66666667 10.66666667 10.66666667]
按行输出方差组成的数组为: [1.25 1.25 1.25]