所谓的单位矩阵,指的行数和列数相同,然后从左上角到右下角对角线上的元素都是 1,其他元素都是 0,如下图所示。

在 NumPy 中,常用的创建单位矩阵的函数有以下 2 种:
- numpy.eye()
- numpy.identity()
numpy.eye() 创建单位矩阵
在 NumPy 中,我们可以使用 eye() 函数来创建一个单位矩阵(本质上是一个二维数组)。该单位矩阵主对角线上的元素为 1,其余元素为 0。
语法:
numpy.eye(m, n=None, k=0)说明:
eye() 函数的常用参数有以下 2 个。
m(必选):数组的行数。n(可选):数组的列数。如果为 None,则 n 等于 m。k(可选,默认:0):对角线的索引:0(默认)表示主对角线,正值表示上对角线,负值表示下对角线。
示例 1:numpy.eye() 基本用法
import numpy as np
arr1 = np.eye(3) # 创建一个 3×3 的单位矩阵
arr2 = np.eye(3, 4, k=1) # 创建一个 3×4 的数组,上对角线上的元素为 1
print(arr1)
print(arr2)运行结果如下。
[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]
[[0. 1. 0. 0.]
[0. 0. 1. 0.]
[0. 0. 0. 1.]]分析:
numpy.eye(3) 等价于 np.eye(3, 3, k=0),表示创建一个 3 × 3 的单位矩阵。
numpy.eye(3, 4, k = 1) 表示创建一个 3 × 4 的单位矩阵,且主对角线向上偏移了 1,因此主对角线上方的元素被置为 1。
numpy.identity() 创建单位矩阵
在 NumPy 中,我们还可以使用 identity() 函数来创建一个单位矩阵。
语法:
numpy.identity(n, dtype=None)说明:
identity() 函数的常用参数有以下 2 个。
n(必选):数组的行数(或列数)。dtype(可选):数组的数据类型。
示例 2:numpy.identity() 基本用法
import numpy as np
print(np.identity(2))
print(np.identity(3))
print(np.identity(4))运行结果如下。
[[1. 0.]
[0. 1.]]
[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]
[[1. 0. 0. 0.]
[0. 1. 0. 0.]
[0. 0. 1. 0.]
[0. 0. 0. 1.]]分析:
np.identity(n) 只接收一个参数 n,它会创建一个 n×n 的方阵,其主对角线元素都为 1。这个函数不能用于创建非方阵或偏移对角线。
