python练习 numpy操作

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/dudu3332/article/details/102754898
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 的特征多项式。

猜你喜欢

转载自blog.csdn.net/dudu3332/article/details/102754898