max() ——最大值
min()——最小值
mean() ——平均值
median() ——中位数
std() ——标准差
var()——方差
sum() ——求和
quantile() ——分位数
# 维度分别代表2学校、3年级、4班级
my_matrix = np.random.randint(20,40,24).reshape(2,3,4)
my_matrix
>>>
array([[[38, 32, 21, 20],
[22, 25, 21, 25],
[21, 23, 38, 39]],
[[38, 23, 29, 32],
[36, 26, 39, 32],
[34, 30, 28, 34]]])
my_matrix.sum()
>>>
706
# 把年级维度和班级维度聚合,只保留学校的
my_matrix.sum(axis=(1,2))
>>>
array([325, 381])
NumPy的聚合函数里,median() 、quantile() 俩不能直接通过数组调用,而必须使用np.median() 和np.quantile() 来实现,并且后者具有参数q表述分位数。
np.quantile(my_matrix,axis=-1,q=0.5) # -1 表示倒数第一维
np.median(my_matrix,axis = -1)
>>>
# 因为中位数和0.5分位数一致,所以结果是相同的
array([[27. , 28. , 25.5],
[26.5, 27.5, 31. ]])
array([[27. , 28. , 25.5],
[26.5, 27.5, 31. ]])
如果数组具有缺失值,则对应维度也会被设为缺失值;如果想要忽略缺失值进行计算,可以用nan开头的聚合函数:
my_matrix = my_matrix.astype("float") # 更改数组类型,因为np.nan 是特殊的浮点类型
my_matrix[0][0][0] = np.nan # 赋值
my_matrix.max(axis=(1,2))
np.nanmax(my_matrix,axis=(1,2))
>>>
array([nan, 39.])
array([39., 39.])
这是以两个数组变量作为输入的函数,计算它们之间的相关性情况。
**** ——协方差计算
输出结果为一个协方差矩阵,**results[ i ][ j ]**表示第i个变量与第j个变量的协方差。
target1 = np.array([1,3,5,9])
target2 = np.array([1,5,3,-9])
np.cov(target1,target2)
>>>
array([[ 11.66666667, -16.66666667],
[-16.66666667, 38.66666667]])
numpy的cov函数使用的三点:
变量矩阵的一行表示一个随机变量;
bais参数控制计算时除以n-1还是n, True表示除以n,False表示除以n-1;
输出结果是一个协方差矩阵, results[i][j]表示第i个随机变量与第j个随机变量的协方差.
**** ——相关系数
相关系数是用以反映变量之间相关关系密切程度的统计指标。相关系数也可以看成协方差:一种剔除了两个变量量纲影响、标准化后的特殊协方差,它消除了两个变量变化幅度的影响,而只是单纯反应两个变量每单位变化时的相似程度。
np.corrcoef([target1,target2])
>>>
array([[ 1. , -0.78470603],
[-0.78470603, 1. ]])
numpy的corrcoef函数使用的两点:
变量矩阵的一行表示一个随机变量;
输出结果是一个相关系数矩阵, results[i][j]表示第i个随机变量与第j个随机变量的相关系数.
常见逻辑函数包含:
比较运算符,<、>、≤、≥、≠和== 等
内置函数,isnan()、isinf()、all()、any() 等
逻辑运算符,或运算符|、和运算符&以及非运算符~
salary = np.array([[9000,10000],[11000,12000]])
(salary>10000).all(axis=1)
(salary>10000).all(axis=1)
>>>
array([False, True])
array([False, True])
逻辑函数优先级:
a = np.array([True])
b = np.array([False])
~a | a
~b & b
a | b & b
>>>
array([True])# 说明not优先级高于or
array([False])# 说明not优先级高于and
array([True])# 说明and优先级高于or
逻辑函数可以被广播:
a = np.array([True, False])
b = np.array([True, False])
a | b[:, None] # 广播
>>>
array([[ True, True],
[ True, False]])
常见索引函数包含:
****** ——返回非零数的索引**
****** ——返回最大数的索引**
****** ——返回最小数的索引**
a = np.array([0,-5,0,1,3,-1])
np.nonzero(a)
a.argmax()
a.argmin()
>>>
(array([1, 3, 4, 5], dtype=int64),)
4
1