Python中矩阵和数组的区别?
Python中的数组是ndarray对象。矩阵对象严格是二维数组,而ndarray对象可以是多维的。要创建Python中的数组,请使用Numpy库。
Python中的矩阵
矩阵是每个数据元素严格相同大小的二维数组的特殊情况。矩阵是许多数学和科学计算中的关键数据结构。每个矩阵也是二维数组,但反过来则不一定成立。矩阵对象是ndarray的子类,因此它们继承了所有的属性和方法。
示例
创建并显示矩阵
from numpy import *
#创建矩阵
mat = array([['A',12,16],['B',11,13],
['C',20,19],['D',22,21],
['E',18,22],['F',12,18]])
#显示矩阵
print("Matrix = \n",mat)
输出
Matrix =
[['A' '12' '16']
['B' '11' '13']
['C' '20' '19']
['D' '22' '21']
['E' '18' '22']
['F' '12' '18']]
示例
使用mat()创建矩阵
mat()函数将输入解释为矩阵 –
import numpy as np
#创建矩阵
mat = np.mat([[5,10],[15,20]])
#显示矩阵
print("Matrix = \n",mat)
输出
Matrix =
[[ 5 10]
[15 20]]
Python中的数组
数组是一个容器,可以容纳固定数量的项,这些项应该是相同类型的。要在Python中使用数组,请导入NumPy库。
示例
import numpy as np
#创建一个数组
arr= np.array([5, 10, 15, 20])
#显示数组
print("Array =\n")
for xin arr:
print(x)
输出
Array =
5
10
15
20
使用Numpy数组进行矩阵运算
根据官方文档,numpy.matrix类将在未来被删除。因此,现在必须使用Numpy数组进行矩阵代数运算。
示例
现在让我们看一些使用Numpy数组的矩阵运算符。首先,我们将使用数组创建矩阵 –
import numpy as np
#创建矩阵
mat1 = np.array([[5,10],[3,9]])
mat2 = np.array([[15,20],[10,11]])
#显示矩阵
print("矩阵 1 = \n",mat1)
print("矩阵 2 = \n",mat2)
输出
矩阵 1 =
[[ 5 10]
[ 3 9]]
矩阵 2 =
[[15 20]
[10 11]]
例子
让我们把上面的矩阵相乘 –
import numpy as np
#创建矩阵
mat1 = np.array([[5,10],[3,9]])
mat2 = np.array([[15,20],[10,11]])
#显示矩阵
print("矩阵 1 = \n",mat1)
print("矩阵 2 = \n",mat2)
mulMat = mat1@mat2
print("\n矩阵相乘 = \n",mulMat)
输出
矩阵 1 =
[[ 5 10]
[ 3 9]]
矩阵 2 =
[[15 20]
[10 11]]
矩阵相乘 =
[[175 210]
[135 159]]
例子
获取转置 –
import numpy as np
#创建矩阵
mat1 = np.array([[5,10],[3,9]])
mat2 = np.array([[15,20],[10,11]])
#显示矩阵
print("矩阵 1 = \n",mat1)
print("矩阵 2 = \n",mat2)
mulMat = mat1@mat2
print("\n转置 = \n",mulMat.T)
输出
矩阵 1 =
[[ 5 10]
[ 3 9]]
矩阵 2 =
[[15 20]
[10 11]]
转置 =
[[175 135]
[210 159]]