NumPy 中包含了一个矩阵库 numpy.matlib,该模块中的函数返回的是一个矩阵,而不是 ndarray 对象。
一个
的矩阵是一个由
行(row)
列(column)元素排列成的矩形阵列。
矩阵里的元素可以是数字、符号或数学式。以下是一个由 6 个数字元素构成的 2 行 3 列的矩阵:
NumPy 中除了可以使用 numpy.transpose 函数来对换数组的维度,还可以使用
T
属性。。
例如有个 m 行 n 列的矩阵,使用 t() 函数就能转换为 n 行 m 列的矩阵。
import
numpy
as
np
a
=
np
.
arange
(
12
)
.
reshape
(
3
,
4
)
print
(
'
原数组:
'
)
print
(
a
)
print
(
'
\n
'
)
print
(
'
转置数组:
'
)
print
(
a
.
T
)
输出结果如下:
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
转置数组:
[[ 0 4 8]
[ 1 5 9]
[ 2 6 10]
[ 3 7 11]]
matlib.empty()
matlib.empty() 函数返回一个新的矩阵,语法格式为:
numpy.matlib.empty(shape, dtype, order)
参数说明:
shape
: 定义新矩阵形状的整数或整数元组
Dtype
: 可选,数据类型
order
: C(行序优先) 或者 F(列序优先)
import
numpy
.
matlib
import
numpy
as
np
print
(
np
.
matlib
.
empty
(
(
2
,
2
)
)
)
输出结果为:
[[-1.49166815e-154 -1.49166815e-154]
[ 2.17371491e-313 2.52720790e-212]]
numpy.matlib.zeros()
numpy.matlib.zeros() 函数创建一个以 0 填充的矩阵。
import
numpy
.
matlib
import
numpy
as
np
print
(
np
.
matlib
.
zeros
(
(
2
,
2
)
)
)
输出结果为:
[[0. 0.]
[0. 0.]]
numpy.matlib.ones()
numpy.matlib.ones()函数创建一个以 1 填充的矩阵。
import
numpy
.
matlib
import
numpy
as
np
print
(
np
.
matlib
.
ones
(
(
2
,
2
)
)
)
输出结果为:
[[1. 1.]
[1. 1.]]
numpy.matlib.eye()
numpy.matlib.eye() 函数返回一个矩阵,对角线元素为 1,其他位置为零。
numpy.matlib.eye(n, M,k, dtype)
参数说明:
n
: 返回矩阵的行数
M
: 返回矩阵的列数,默认为 n
k
: 对角线的索引
dtype
: 数据类型
import
numpy
.
matlib
import
numpy
as
np
print
(
np
.
matlib
.
eye
(
n
=
3
,
M
=
4
,
k
=
0
,
dtype
=
float
)
)
输出结果为:
[[1. 0. 0. 0.]
[0. 1. 0. 0.]
[0. 0. 1. 0.]]
numpy.matlib.identity()
numpy.matlib.identity() 函数返回给定大小的单位矩阵。
单位矩阵是个方阵,从左上角到右下角的对角线(称为主对角线)上的元素均为 1,除此以外全都为 0。
import
numpy
.
matlib
import
numpy
as
np
print
(
np
.
matlib
.
identity
(
5
,
dtype
=
float
)
)
输出结果为:
[[ 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()
numpy.matlib.rand() 函数创建一个给定大小的矩阵,数据是随机填充的。
import
numpy
.
matlib
import
numpy
as
np
print
(
np
.
matlib
.
rand
(
3
,
3
)
)
输出结果为:
[[0.23966718 0.16147628 0.14162 ]
[0.28379085 0.59934741 0.62985825]
[0.99527238 0.11137883 0.41105367]]
矩阵总是二维的,而 ndarray 是一个 n 维数组。 两个对象都是可互换的。
import
numpy
.
matlib
import
numpy
as
np
i
=
np
.
matrix
(
'
1,2;3,4
'
)
print
(
i
)
输出结果为:
[[1 2]
[3 4]]
import
numpy
.
matlib
import
numpy
as
np
j
=
np
.
asarray
(
i
)
print
(
j
)
输出结果为:
[[1 2]
[3 4]]
import
numpy
.
matlib
import
numpy
as
np
k
=
np
.
asmatrix
(
j
)
print
(
k
)
输出结果为:
[[1 2]
[3 4]]