版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
a=[1,2,3,4]
a1=np.array([1,2,3,4])
print(a)
print(a1)
[1, 2, 3, 4] [1 2 3 4]
可以看到numpy的数据更加紧凑
python定义的列表没有reshape 所以只能对numpy数组执行该操作
a1=np.array([1,2,3,4,5,6,7,8,9])
a1=a1.reshape(3,3)
print(a1)
[[1 2 3] [4 5 6] [7 8 9]]
np.zeros((4,3))
array([[0., 0., 0.], [0., 0., 0.], [0., 0., 0.], [0., 0., 0.]])
生成 全0矩阵
np.eye(5)
array([[1., 0., 0., 0., 0.], [0., 1., 0., 0., 0.], [0., 0., 1., 0., 0.], [0., 0., 0., 1., 0.], [0., 0., 0., 0., 1.]])
生成单位矩阵
矩阵乘法
I=np.arange(1,7).reshape(2,3)
D=np.arange(1,10).reshape(3,3)
M=np.dot(I,D)
print(M)
[[30 36 42] [66 81 96]]
这里注意dot里的位置不同 有时候结果不同
元素求和
np.sum(M)
351
按行累加
np.sum(M,axis=1)
array([108, 243])
随即生成矩阵
ran1=np.random.rand(3,2)
print(ran1)
[[0.38877079 0.71820201] [0.24064133 0.63863328] [0.0446918 0.40998173]]
添加
np.append(a1,10)
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
求元素之间的差
b=np.diff(a1,n=1)
print(b)
np.diff(a1,n=2)
[[1 1] [1 1] [1 1]]
array([[0], [0], [0]])
组成矩阵
按行
b1=np.array([1,2,3])
b2=np.array([2,3,4])
b3=np.array([3,4,5])
np.vstack((b1,b3,b2))
array([[1, 2, 3], [3, 4, 5], [2, 3, 4]])
按列
np.column_stack((b2,b1,b3))
array([[2, 1, 3], [3, 2, 4], [4, 3, 5]])
矩阵转置
.T
迹
np.trace(a1)
15
特征值与特征向量
Import numpy.linalg as nplg
print(nplg.eig(a1))
(array([ 1.61168440e+01, -1.11684397e+00, -1.30367773e-15]), array([[-0.23197069, -0.78583024, 0.40824829], [-0.52532209, -0.08675134, -0.81649658], [-0.8186735 , 0.61232756, 0.40824829]]))
A为n阶矩阵,若数λ和n维非0列向量x满足Ax=λx,那么数λ称为A的特征值,x称为A的对应于特征值λ的特征向量。 式Ax=λx也可写成( A-λE)x=0,并且|λE-A|叫做A 的特征多项式。