Numpy的基本使用
1、导入Numpy库
import numpy as np
2、矩阵运算
np.mat() # mat只适用于2维矩阵
#矩阵相乘
A.dot(B) np.dot(A,B) A*B
#矩阵求逆矩阵
np.linalg.inv(A) A.I
#矩阵转置
A.T
np.array() # 多维矩阵
#矩阵相乘
A.dot(B) np.dot(A,B)
#矩阵求逆矩阵
np.linalg.inv(A)
#矩阵转置
A.T
3、生成随机整数矩阵
#创建3*3的 0-10 之间的随机整数矩阵
a = np.random.randint(10,size=(3,3))
print(a)
print(a.shape)
[[0 2 4]
[2 8 2]
[1 9 1]]
(3, 3)
4、生成对角矩阵
#对角矩阵
print(np.diag([1,2,3]))
[[1 0 0]
[0 2 0]
[0 0 3]]
5、矩阵切片
#数组slice切片
A = np.array([[1,2,3,4,5],
[6,7,8,9,0],
[5,4,3,2,1],
[4,5,6,3,2],
[8,7,5,6,2]])
print(A[1:3]) # 1表示从下标为1的行开始,到下标为3的行结束。
print(A[1:2,2]) # 1:2 表示下标1的行,这行中下标为2的列元素。
print(A[:,1]) # :在前 表示所有行元素,1 表示下标为1的列。
print(A[0:3:2,3]) # 0:3:2 行下标从0到3步长为2中,下标为3的列
[[6 7 8 9 0]
[5 4 3 2 1]]
[8]
[2 7 4 5 7]
[4 2]
6、矩阵合并(np.vstack() np.hstack())
#数组合并
# np.vstack() np.hstack() 括号中为元组
例1
a = np.array([1,2,3])
b = np.array([4,5,6])
print(np.vstack((a,b))) # np.vstack() 按行合并,列不变 --纵向合并
print(np.hstack((a,b))) # np.hstack() 按列合并,行不变 --横向合并
[[1 2 3]
[4 5 6]]
[1 2 3 4 5 6]
例2
c = np.array([[1],[2],[3]]) # np.vstack() 按行合并,列不变 --纵向合并
d = np.array([[4],[5],[6]]) # np.hstack() 按列合并,行不变 --横向合并
print(np.vstack((c,d)))
print(np.hstack((c,d)))
[[1]
[2]
[3]
[4]
[5]
[6]]
[[1 4]
[2 5]
[3 6]]
7、矩阵连接(np.vstack() np.hstack())
#数组连接
# np.r_ np.c_ 方括号来堆叠数组。
a = np.array([1,2,3])
b = np.array([4,5,6])
aa = np.r_[a,0,0,b] #row(行) 按行连接
print(aa.shape)
print(aa)
(8,)
[1 2 3 0 0 4 5 6]
bb = np.c_[a,b] #column(列) 按列连接
print(bb.shape)
print(bb)
(3, 2)
[[1 4]
[2 5]
[3 6]]
8、矩阵广播
#数组广播
a = np.array([[0],[1],[2],[3]])
b = np.array([1,2,3])
print(a+b)
print(a*b)
print(a/b)
[[1 2 3]
[2 3 4]
[3 4 5]
[4 5 6]]
[[0 0 0]
[1 2 3]
[2 4 6]
[3 6 9]]
[[0. 0. 0. ]
[1. 0.5 0.33333333]
[2. 1. 0.66666667]
[3. 1.5 1. ]]