Numpy矩阵运算

Numpy是Python的一个数值计算库,提供了很多方便好用的矩阵运算方法,下面看看如何使用。


使用Numpy前需要安装该模块,很简单,命令行执行:

pip install numpy


在使用前需要import,一般如下所示:

import numpy as np


1.矩阵的定义

A = np.mat([

    [1, 2, 3],

    [4, 5, 6],

    [7, 8, 9]

], dtype=int)


定义矩阵使用mat,我们这里定义一个3 X 3的矩阵;dtype指明了矩阵中的数据类型,这里是int,默认是浮点数。下面是一些特殊矩阵的定义方式,以创建3 X 3方阵为例:


元素全为零的矩阵:

A = np.mat(np.zeros((3, 3), dtype=int))


元素全为1的矩阵:

A = np.mat(np.ones((3, 3), dtype=int))


单位阵:

A = np.mat(np.eye(3, 3, dtype=int))


对角阵,对角线元素以列表形式传递:

A = np.diag([1, 2, 3])


使用一个值初始化所有元素:

A=np.mat(np.full((3, 3), 12, dtype=int))


2.矩阵运算

定义两个矩阵A和B,如下:

A = np.mat([

    [1, 2, 3],

    [4, 5, 6],

    [7, 8, 9]

], dtype=int)


B = np.mat([

    [9, 8, 7],

    [6, 5, 4],

    [3, 2, 1]

], dtype=int)


加法,减法,乘法和转置:

print(A + B)

print(A - B)

print(A * B)

print(A .T)


下面的方法是元素依次相乘,注意与矩阵乘法区分

print(np.multiply(A, B))


求逆:

C = np.mat([

    [0, 1, 2],

    [1, 0, 3],

    [4, -3, 8]

])

print(C .I)


示例中是非奇异矩阵,如果矩阵是奇异矩阵,会抛出C.I异常。


3.方阵的行列式

求一个方阵的行列式,可以使用det

A = np.mat([

    [1, 2, 3],

    [0, 2, 3],

    [1, 2, 0]

])


print(np.linalg.det(A))


4.矩阵的秩,特征值和特征向量

value, vectors = np.linalg.eig(A)

print(value)

print(vectors)


使用numpy的linalg下的eig可以计算特征值和特征向量,上例中,values是特征值,vectors是特征向量。


以上就是Numpy的一些矩阵操作的方法,都很简单易用,我这里没有给出运行结果,目的是希望大家运行起来自己看一下,可以更加直观一些。使用Numpy,我们就具备了一个强大的数值运算计算器。



猜你喜欢

转载自blog.csdn.net/yjp19871013/article/details/79113984