numpy的通用函数&where函数&排序方法&集合运算函数&数学和统计函数&线性代数 矩阵的运算(6)

文章目录

  • 前言
  • 一、通用函数:元素级数字函数
  • 二、where函数
  • 三、排序方法
  • 四、集合运算函数
  • 五、数学和统计函数
  • 六、矩阵的运算
    • 1. 矩阵乘积
    • 2.矩阵其他计算
  • 总结


前言

python学习笔记—Numpy day7(仅供学习使用)


一、通用函数:元素级数字函数

abs、sqrt、square、exp、log、sin、cos、tan,maxinmum、minimum、all、any、inner、clip、round、trace、ceil、floor

cell向上取整,floor向下取整
numpy的通用函数&where函数&排序方法&集合运算函数&数学和统计函数&线性代数 矩阵的运算(6)_第1张图片

round就是保留小数,括号里写1 就是保留一位小数
square是平方,若想要三次方,可定义函数在这里插入图片描述
maximum返回数组最大值
在这里插入图片描述
clip有裁剪的意思,若数组中有小于2的数就变成2,有大于16的数就变成16

import numpy as np 
arr1 = np.array([1,4,8,9,16,25]) 
np.sqrt(arr1) # 开平方 
np.square(arr1) # 平方 
np.clip(arr1,2,16) # 输出 array([ 2, 4, 8, 9, 16, 16]) 
x = np.array([1,5,2,9,3,6,8]) 
y = np.array([2,4,3,7,1,9,0]) 
np.maximum(x,y) # 返回两个数组中的比较大的值 
arr2 = np.random.randint(0,10,size = (5,5)) 
np.inner(arr2[0],arr2) #返回一维数组向量内积

inner函数返回的是一位数组内积(2,8)内积(2,8)=68
(2,8) 内积(2,3)= 28
所以最终结果是【68,28】
numpy的通用函数&where函数&排序方法&集合运算函数&数学和统计函数&线性代数 矩阵的运算(6)_第2张图片

二、where函数

where 函数,三个参数,条件为真时选择值的数组,条件为假时选择值的数组

import numpy as np 
arr1 = np.array([1,3,5,7,9]) 
arr2 = np.array([2,4,6,8,10]) 
cond = np.array([True,False,True,True,False]) 
np.where(cond,arr1,arr2) # True选择arr1,False选择arr2的值 
# 输出 array([ 1, 4, 5, 7, 10])

运行:
numpy的通用函数&where函数&排序方法&集合运算函数&数学和统计函数&线性代数 矩阵的运算(6)_第3张图片

arr3 = np.random.randint(0,30,size = 20) 
np.where(arr3 < 15,arr3,-15) # 小于15还是自身的值,大于15设置成-15

运行:
在这里插入图片描述
例题:
numpy的通用函数&where函数&排序方法&集合运算函数&数学和统计函数&线性代数 矩阵的运算(6)_第4张图片

三、排序方法

np中还提供了排序方法,排序方法是就地排序,即直接改变原数组
arr.sort()、np.sort()、arr.argsort()

import numpy as np 
arr = np.array([9,3,11,6,17,5,4,15,1]) 
arr.sort() # 直接改变原数组 
np.sort(arr) # 返回深拷贝排序结果 
arr = np.array([9,3,11,6,17,5,4,15,1]) 
arr.argsort() # 返回从小到大排序索引 array([8, 1, 6, 5, 3, 0, 2, 7, 4])

四、集合运算函数

A = np.array([2,4,6,8]) 
B = np.array([3,4,5,6]) 
np.intersect1d(A,B) # 交集 array([4, 6]) 
np.union1d(A,B) # 并集 array([2, 3, 4, 5, 6, 8]) 
np.setdiff1d(A,B) #差集,A中有,B中没有 array([2, 8])

五、数学和统计函数

min、max、mean、median、sum、std、var、cumsum、cumprod、argmin、argmax、argwhere、cov、corrcoef

import numpy as np 
arr1 = np.array([1,7,2,19,23,0,88,11,6,11]) 
arr1.min() # 计算最小值 0 
arr1.argmax() # 计算最大值的索引 返回 6 
np.argwhere(arr1 > 20) # 返回大于20的元素的索引 
np.cumsum(arr1) # 计算累加和 
arr2 = np.random.randint(0,10,size = (4,5)) 
arr2.mean(axis = 0) # 计算列的平均值 
arr2.mean(axis = 1) # 计算行的平均值 
np.cov(arr2,rowvar=True) # 协方差矩阵 
np.corrcoef(arr2,rowvar=True) # 相关性系数

六、矩阵的运算

1. 矩阵乘积

#矩阵的乘积 
A = np.array([[4,2,3], 
			[1,3,1]]) # shape(2,3) 
B = np.array([[2,7],
			 [-5,-7], 
			 [9,3]]) # shape(3,2) 
np.dot(A,B) # 矩阵运算 A的最后一维和B的第一维必须一致 
A @ B # 符号 @ 表示矩阵乘积运算

2.矩阵其他计算

下面可以计算矩阵的逆、行列式、特征值和特征向量、qr分解值,svd分解值

#计算矩阵的逆 
from numpy.linalg import inv,det,eig,qr,svd 
A = np.array([[1,2,3],
			 [2,3,4], 
			 [4,5,8]]) # shape(3,3) 
inv(t) # 逆矩阵 
det(t)#计算矩阵行列式

总结

你可能感兴趣的:(NumpyStudy,python)