Numpy eye() 函数
Numpy eye() 函数用于创建一个二维数组,该数组的对角线上元素为 1,其他所有位置元素为 0。这意味着除对角线外的所有元素都为零。 此函数通常用于在数值计算中生成单位矩阵和类似结构。
对角线上元素为 1 的方阵称为单位矩阵。numpy.eye() 函数允许我们通过为行和列指定不同的值来创建非方阵的单位矩阵。
语法
以下是 Numpy eye() 函数的语法 -
numpy.eye(N, M=None, k=0, dtype=float)
参数
以下是 Numpy eye() 函数的参数 -
- N - 表示输出数组的行数。
- M - 表示输出数组的列数。如果为 None,则输出数组的列数与行数相同(即方阵)。
- k - 表示对角线的索引。默认值为 0(主对角线)。正值表示在主对角线上方创建对角线,负值表示在主对角线下方创建对角线。
- dtype - 数组所需的数据类型。默认值为浮点数。
返回值
此函数返回一个二维 NumPy 数组,其中指定对角线上的元素为 1,其余位置为 0。
示例
以下是使用 Numpy eye() 函数生成 4x4 单位矩阵的基本示例 -
import numpy as np identity_matrix = np.eye(4) print("单位矩阵: ", identify_matrix)
输出
以下是上述代码的输出 -
单位矩阵: [[1. 0. 0. 0.] [0. 1. 0. 0.] [0. 0. 1. 0.] [0. 0. 0. 1.]]
示例:指定列数
使用 numpy.eye() 中的 M 参数,我们可以指定与行数不同的列数,从而生成非方阵。这在需要指定维度的单位矩阵的应用中非常有用。
在以下示例中,我们使用 numpy.eye() 生成一个 5x3 的单位矩阵 -
import numpy as np non_square_matrix = np.eye(5, 3) print("包含对角线元素的矩阵: ", non_square_matrix)
输出
以下是上述代码的输出 -
包含对角线元素的矩阵: [[1. 0. 0.] [0. 1. 0.] [0. 0. 1.] [0. 0. 0.] [0. 0. 0.]]
示例:在 'numpy.eye()' 中移动对角线
numpy.eye() 中的 k 参数允许我们移动对角线。默认情况下,值为 1 的对角线是主对角线(即 k=0),但我们可以为 k 指定正值或负值,分别将对角线向上或向下移动。
'k' 为正整数
如果我们将 k 设置为正值,则对角线向上移动,将 1 置于主对角线上方。这里,我们生成了一个 4x4 矩阵,对角线上移一位(即 k=1)。-
import numpy as np shifted_diagonal_matrix = np.eye(4, k=1) print("对角线上移的矩阵: ", shifted_diagonal_matrix)
输出
以下是上述代码的输出 -
对角线上移的矩阵: [[0. 1. 0. 0.] [0. 0. 1. 0.] [0. 0. 0. 1.] [0. 0. 0. 0.]]
'k' 为负整数
如果我们将 k 设置为负值,对角线会向下移动,将元素置于主对角线下方。这里,我们生成了一个 5x5 矩阵,对角线向下移动了 -2 位(即 k=-2)。-
import numpy as np shifted_diagonal_matrix = np.eye(5, k=-2) print("对角线向下移动的矩阵: ", shifted_diagonal_matrix)
输出
以下是上述代码的输出 -
对角线向下移动的矩阵: [[0. 0. 0. 0. 0.] [0. 0. 0. 0. 0.] [1. 0. 0. 0. 0.] [0. 1. 0. 0. 0.] [0. 0. 1. 0. 0.]]
示例:在 'eye()' 中指定数据类型
numpy.eye() 函数允许我们使用 dtype 参数指定输出数组的数据类型。我们可以将其更改为任何有效的数据类型,例如 int、complex。默认情况下,它返回一个浮点型数组。
在下面的示例中,我们通过将 dtype 参数设置为 int 来生成一个 3x3 的整数单位矩阵 -
import numpy as np int_identity_matrix = np.eye(3, dtype=int) print("整数单位矩阵: ", int_identity_matrix)
输出
以下是上述代码的输出 -
整数单位矩阵: [[1 0 0] [0 1 0] [0 0 1]]
示例:带有'eye()'
我们还可以通过指定 dtype 参数为 complex 来创建复数单位矩阵。这在涉及复数的应用中很有用,例如信号处理或量子力学。
在以下示例中,我们创建了一个 3x3 复数单位矩阵 -
import numpy as np complex_identity_matrix = np.eye(3, dtype=complex) print("复数单位矩阵: ", complex_identity_matrix)
输出
以下是上述代码的输出 -
复数单位矩阵: [[1.+0.j 0.+0.j 0.+0.j] [0.+0.j 1.+0.j 0.+0.j] [0.+0.j 0.+0.j 1.+0.j]]
numpy_array_creation_routines.html