数组的统计方法 和 布尔类型的数组的方法
数组统计方法
几个主要的函数:
Sum,mean,min,max,argmin,argmax(分别为最大和最小元素的索引)cumsum(所有元素的累积和)cumprod(所有元素的累积积)
sum:返回数组的元素的和
mean:返回数组的平均值
max:返回数组的最大值
min:返回数组的最小值
argmax:返回最大值的索引
argmin:返回最小值的索引
cumsum:所有元素的累积和
cumprod:所有元素的累积积
所有的函数当axis=0时.是对每一列进行操作,当axis=1时,对每一行进行操作
1.max函数
import numpy as np
arr = np.arange(5,21).reshape(4,4)
Out:
array([[ 5, 6, 7, 8],
[ 9, 10, 11, 12],
[13, 14, 15, 16],
[17, 18, 19, 20]])
arr.max() 返回数组中的最大值
Out[78]: 20
arr.max(axis=0) 返回每一列的最大值
Out[80]: array([17, 18, 19, 20])
arr.max(axis=1) 返回每一行的最大值
Out[83]: array([ 8, 12, 16, 20])
2.cumsum函数
1)不加任何参数
形成一维数组,每个元素等于前面所有元素之和
arr
Out[86]:
array([[ 5, 6, 7, 8],
[ 9, 10, 11, 12],
[13, 14, 15, 16],
[17, 18, 19, 20]])
arr.cumsum()
Out[84]:
array([ 5, 11, 18, 26, 35, 45, 56, 68, 81, 95, 110, 126, 143,
161, 180, 200], dtype=int32)
2)axis=0时
每一列从上到下逐渐累加
arr.cumsum(axis=0)
Out[87]:
array([[ 5, 6, 7, 8],
[14, 16, 18, 20],
[27, 30, 33, 36],
[44, 48, 52, 56]], dtype=int32)
3)axis=1时
每一行从左到右逐渐累加
Out[88]:
array([[ 5, 11, 18, 26],
[ 9, 19, 30, 42],
[13, 27, 42, 58],
[17, 35, 54, 74]], dtype=int32)
布尔类型数组的方法
arr=np.arange(12).reshape(3,4)
In [4]: arr
Out[4]:
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
bioom = (arr>5)
bloom
Out[99]:
array([[False, False, False, False],
[False, False, True, True],
[ True, True, True, True]], dtype=bool)
Score=np.array([[60,65,30,76],[56,78,98,34],[55,63,76,34],[78,90,45,66],[55,89,99,70],[55,45,89,77]])
Name=np.array(['Mr.Lin','Miss Fang','Mr.Tian','Miss Fang','Mr.Lin','Mr.Tian'])
In [42]: Name=='Mr.Lin'
Out[42]: array([ True, False, False, False, True, False], dtype=bool)
In [44]: Score[Name=='Mr.Lin'] #这里的角码是一个布尔型列表,程序自动检索里面的bool值,自动选取“Ture”布尔值。然后把“True”布尔值转化为行号值,按行号选取数组行。
Out[44]:
array([[60, 65, 30, 76],
[55, 89, 99, 70]])
In [45]: #这就是一个简单Python数据库查询程序,可以说比任何程序的代码都简单。
布尔数组的sum方法:
返回所有元素的和
bloom.sum()
Out[102]: 6
布尔数组的any方法:
检验数组里有没有true,如果有一个ture,则返回true
bloom.any()
Out[106]: True
布尔数组的all方法:
检验数组是不是全都是true,只有在全都是true的情况下才返回true
bloom.all()
Out[107]: False