NumPy 中包含了一个矩阵库 numpy.matlib
,该模块中的函数返回的是一个矩阵,而不是 ndarray 对象
一个 m * n
的矩阵是一个由 m 行(row)n 列(column)元素排列成的矩形阵列
矩阵里的元素可以是数字、符号或数学式。以下是一个由 6 个数字元素构成的 2 行 3 列的矩阵
matlib.empty()
函数
返回一个新的矩阵,语法格式为:
numpy.matlib.empty(shape, dtype, order)
参数说明:
示例:
In [1]: import numpy.matlibIn [2]: import numpy as npIn [3]: np.matlib.empty((2, 2))
Out[3]:
matrix([[1.72723371e-077, 1.49457517e-154],[9.88131292e-324, 2.78134232e-309]])
numpy.matlib.zeros()
函数
创建一个以 0 填充的矩阵
In [4]: np.matlib.zeros((2, 2))
Out[4]:
matrix([[0., 0.],[0., 0.]])
numpy.matlib.ones()
函数
创建一个以 1 填充的矩阵
In [5]: np.matlib.ones((2, 2))
Out[5]:
matrix([[1., 1.],[1., 1.]])
numpy.matlib.eye() 函数
返回一个矩阵,对角线元素为 1,其他位置为零
numpy.matlib.eye(n, M,k, dtype)
参数说明:
-
n: 返回矩阵的行数
-
M: 返回矩阵的列数,默认为 n
-
k: 对角线的索引
-
dtype: 数据类型
示例:
In [6]: np.matlib.eye(n=3, M=4, k=0, dtype=float)
Out[6]:
matrix([[1., 0., 0., 0.],[0., 1., 0., 0.],[0., 0., 1., 0.]])
numpy.matlib.identity()
函数
返回给定大小的单位矩阵
单位矩阵是个方阵,从左上角到右下角的对角线(称为主对角线)上的元素均为 1,除此以外全都为 0
In [7]: np.matlib.identity(5, dtype=float)
Out[7]:
matrix([[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.]])
numpy.matlib.rand()
函数
创建一个给定大小的矩阵,数据是随机填充的
In [8]: np.matlib.rand(3, 3)
Out[8]:
matrix([[0.6321775 , 0.80290426, 0.93202202],[0.83145053, 0.08945262, 0.83305413],[0.061605 , 0.36800879, 0.06980826]])
矩阵总是二维的,而 ndarray 是一个 n 维数组。 两个对象都是可互换的
In [9]: x = np.matrix('1, 2; 3, 4')In [10]: x
Out[10]:
matrix([[1, 2],[3, 4]])In [11]: y = np.asarray(x)In [12]: y
Out[12]:
array([[1, 2],[3, 4]])In [13]: k = np.asmatrix(y)In [14]: k
Out[14]:
matrix([[1, 2],[3, 4]])