NumPy 教程(第 20 章):矩阵库

博客介绍了NumPy中的矩阵库,其函数返回矩阵而非ndarray对象。阐述了矩阵的定义,还介绍了多个矩阵创建函数,如返回新矩阵、以0或1填充的矩阵、对角线为1的矩阵、单位矩阵以及随机填充的矩阵等,指出矩阵与ndarray可互换。

NumPy 中包含了一个矩阵库 numpy.matlib,该模块中的函数返回的是一个矩阵,而不是 ndarray 对象

一个 m * n 的矩阵是一个由 m 行(row)n 列(column)元素排列成的矩形阵列

矩阵里的元素可以是数字、符号或数学式。以下是一个由 6 个数字元素构成的 2 行 3 列的矩阵

matlib.empty() 函数

返回一个新的矩阵,语法格式为:

numpy.matlib.empty(shape, dtype, order)

参数说明:

  • shape: 定义新矩阵形状的整数或整数元组

  • Dtype: 可选,数据类型

  • order: C(行序优先) 或者 F(列序优先)

示例:

In [1]: import numpy.matlib

In [2]: import numpy as np

In [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]])
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值