前言
Python与Matlab在矩阵的处理方面比较相似,下面就通过它们之间的对应的矩阵处理命令介绍一下怎么使用Python进行矩阵处理。
Numpy的导入
Numpy是Python中处理矩阵的一个非常重要的开源包,下面是下载和使用Numpy的代码:
// 用 pip下载numpy
pip install numpy
// 导入 numpy
import numpy as np
Numpy中的Array数组
Array数组的创建
// 创建array数组
n1_array = np.array([[1, 2, 4], [3, 6, 8]])
对应矩阵操作
| 矩阵操作 | Matlab | Python |
|---|---|---|
| 创建全为0的矩阵 | zeros(m, n) | np.zeros((m, n)) |
| 创建全为1的矩阵 | ones(m, n) | np.ones((m, n)) |
| 创建单位矩阵 | eye(n) | np.identity(n) |
| 创建对角矩阵 | diag(vector) | np.diag(vector) |
| 创建随机数矩阵 | rand(m, n) | np.random.random((m, n)) |
| 矩阵转置 | A’ | np.transpose(A) |
| 矩阵求逆 | inv(A) | np.linalg.inv(A) |
| 矩阵求迹 | trace(A) | np.trace(A) |
| 矩阵求行列式 | det(A) | np.linalg.det(A) |
| 矩阵求特征值和特征向量 | [vector, value] = eig(A) | value, vector = np.linalg.eig(A) |
| 矩阵对应位置相乘 | A .* B | A * B |
| 矩阵乘法 | A * B | np.dot(A, B) |
| 矩阵各元素求平方 | A.^2 | A**2 |
| 矩阵按列求和 | sum(A, 1) | np.sum(A, axis = 0) |
| 矩阵按行求和 | sum(A, 2) | np.sum(A, axis = 1) |
| 矩阵内所有元素求和 | sum(sum(A)) | np.sum(A) |
| 矩阵按列排序 | sort(A, 1) | np.sort(A, axis = 0) |
| 矩阵按行排序 | sort(A, 2) | np.sort(A, axis = 1) |
| 矩阵按列扩充 | [A, B] | np.hstack((A, B)) |
| 矩阵按行扩充 | [A; B] | np.vstack((A, B)) |
| 矩阵按列重组 | reshape(A, [m,n]) | np.reshape(A, (m, n), ‘F’) |
| 矩阵按行重组 | (reshape(A’, [n, m]))’ | np.array(A, (m, n)) |
| 矩阵将其本身叠加m行 | repmat(A, m, 1) | np.tile(A, (m, 1)) |
| 矩阵将其本身叠加n列 | repmat(A, 1, n) | np.tile(A, (1, n)) |
| 矩阵按行排序并返回排序后元素的索引 | [~, index] = sort(A, 2) | index = np.argsort(A, axis = 1) |
| 矩阵按列排序并返回排序后元素的索引 | [~, index] = sort(A, 1) | index = np.argsort(A, axis = 0) |
该博客介绍了Python使用Numpy进行矩阵处理。指出Python与Matlab在矩阵处理上相似,讲解了Numpy的导入方法,还提及了Numpy中Array数组的创建以及对应矩阵操作。
708





