Numpy实现基本的矩阵运算
- a*b实现矩阵叉乘,使用代码和运行结果如图
#矩阵相乘
import numpy as np
a1=np.mat([[1,2,3],[4,5,6],[7,8,9]]); #3*3
a2=np.mat([[11,12,13],[14,15,16],[17,18,19]]);#3*3
print(a1*a2)
- dot()实现矩阵点乘,使用代码和运行结果如图
#矩阵点乘
import numpy as np
a1=np.mat([[1,2,3],[4,5,6],[7,8,9]]); #3*3
a2=np.mat([[11,12,13],[14,15,16],[17,18,19]]);#3*3
a3=a1.dot(a2)
print(a3)
- .I实现矩阵求逆,使用代码和运行结果如图
#矩阵转置
import numpy as np
a1=np.mat([[1,2,3],[4,5,6],[7,8,9]]); #3*3
a2=a1.I
print(a2)
- .T实现矩阵求转置,使用代码和运行结果如图
#矩阵转置
import numpy as np
a1=np.mat([[1,2,3],[4,5,6],[7,8,9]]); #3*3
a2=a1.T
print(a2)
- linalg.eig()实现求矩阵的特征向量,并返回数值,使用代码和运行结果如图
#矩阵求特征向量
import numpy as np
a1=np.mat([[1,2,3],[4,5,6],[7,8,9]]); #3*3
b=np.linalg.eig(a1)
print(b)
Numpy实现线性方程求解
例:求该线性方程组的解
[
1
1
1
0
2
5
2
5
−
1
]
[
x
y
z
]
=
[
6
−
4
27
]
\left[\begin{array}{ccc} 1 & 1 & 1 \\ 0 & 2 & 5 \\ 2 & 5 & -1 \end{array}\right]\left[\begin{array}{l} x \\ y \\ z \end{array}\right]=\left[\begin{array}{c} 6 \\ -4 \\ 27 \end{array}\right]
⎣⎡10212515−1⎦⎤⎣⎡xyz⎦⎤=⎣⎡6−427⎦⎤
使用代码和运行结果如图
from scipy import linalg
import numpy as np
A = np.array([[1, 1, 1], [0, 2, 5], [2, 5, -1]]) # A代表系数矩阵
b = np.array([6, -4, 27]) # b代表常数列
x = linalg.solve(A, b)
print(x)
Numpy实现排序
sort(a,axis,kind,order)函数返回输入数组的排序副本,其中a是所需排序的数组,axis沿着排序的轴,kind默认为"quicksort"快速排序,或者"mergesort"归并排序,"heapsort"堆排序。使用代码和运行结果如图
#排序
import numpy as np
a = np.array([[3,7,5],[8,4,3],[2,4,9]])
print("排序后",np.sort(a))
print("沿x轴排序",np.sort(a,axis=1))
print("沿y轴排序",np.sort(a,axis=0))
- argsort()函数对输入数组进行排序并返回数据的索引数组,使用代码和运行结果如图
#argsort()
import numpy as np
a = np.array([[3,7,5],[8,4,3],[2,4,9]])
b=np.argsort(a)
print(b)
argmax()函数和argmin()函数对输入数组的指定值找出最大值或者最小值,返回其索引值,使用代码和运行结果如图
#armax(),argmin()
import numpy as np
a = np.array([[3,7,5],[8,4,3],[2,4,9]])
print("整个数组中的最大索引",np.argmax(a))
print("沿x轴的最大索引",np.argmax(a,axis=1))
print("沿y轴的最大索引",np.argmax(a,axis=0))
print("整个数组中的最大索引",np.argmax(a))
print("沿x轴的最小索引",np.argmax(a,axis=1))
print("沿y轴的最小索引",np.argmax(a,axis=0))
- where()函数对输入数组找出指定条件的数值,返回其索引值,使用代码和运行结果如图
#where()
import numpy as np
a = np.array([[3,7,5],[8,4,3],[2,4,9]])
print("大于8的:",np.where(a>8))
Numpy实现基本的统计计算
在Numpy中有很多用于统计的函数,从数组中给定的元素中查找最大值,最小值,标准差和方差等。
- amin()和amax()用于从给定的数组中指定轴返回最小值和最大值,使用代码和运行结果如图
#Numpy统计函数
#import numpy as np
a = np.array([[3,7,5],[8,4,3],[2,4,9]])
print("整个数组中的最小值",np.amin(a))#寻找整个数组中的最小值
print("整个数组中的最大值",np.amax(a))#寻找整个数组中的最小值
print("第一列的最大值",np.amax(a,axis = 0))
print("第一列的最小值",np.amax(a,axis = 0))
- ptp()返回沿轴的值得范围,使用代码和运行结果如图
import numpy as np
a = np.array([[3,7,5],[8,4,3],[2,4,9]])
print("整个数组的范围",np.ptp(a))
print("x轴范围",np.ptp(a, axis = 1))
print("y轴范围",np.ptp(a, axis = 0))
- median()求中值,使用代码和运行结果如图
#求中值
import numpy as np
a = np.array([[3,7,5],[8,4,3],[2,4,9]])
print("整个数组的中值",np.median(a))
print("x轴中值",np.median(a, axis = 1))
print("y轴中值",np.median(a, axis = 0))
- mean()求算术平均值,使用代码和运行结果如图
#求平均值
import numpy as np
a = np.array([[3,7,5],[8,4,3],[2,4,9]])
print("整个数组的平均值",np.mean(a))
print("x轴平均值",np.mean(a, axis = 1))
print("y轴平均值",np.mean(a, axis = 0))
- average()求加权平均值,使用代码和运行结果如图
#求加权平均值
a = np.array([1,2,3,4,5,6])
#权重
b = np.array([1,2,3,4,5,6])
print("不指定权重",np.average(a))
print("指定权重",np.average(a,weights = b))
- std()求标准差,使用代码和运行结果如图
#标准差
import numpy as np
a = np.array([1,2,3,4,5,6])
b=np.std(a)
print("标准差",b)
- var()求方差,使用代码和运行结果如图
#方差
import numpy as np
a = np.array([1,2,3,4,5,6])
b=np.var(a)
print("方差",b)