Numpy identity() 函数
Numpy 的 identity() 函数用于生成方阵单位矩阵。单位矩阵是一种特殊的方阵,其主对角线上的元素为 1,其他所有位置的元素均为 0。该函数常用于线性代数和数值计算。
numpy.eye() 和 numpy.identity() 函数均用于生成单位矩阵。主要区别在于 numpy.identity() 函数始终生成方阵,这意味着行数和列数相同,而 numpy.eye() 函数则允许通过指定不同的行数和列数来创建方阵和非方阵。
语法
以下是 Numpy identity() 函数的语法 -
numpy.identity(n, dtype=None, like=None)
参数
以下是 Numpy identity() 函数的参数 -
- n:输出数组的行数(和列数)。结果始终为方阵。
- dtype:矩阵所需的数据类型。默认值为浮点型。
- like(可选):允许创建一个与输入对象类似的数组,但使用现有的类数组对象(例如另一个 NumPy 数组)。
返回值
该函数返回一个二维正方形 NumPy 数组,主对角线上为 1,其他位置为 0。
示例
以下是使用 Numpy identity() 函数生成单位矩阵的基本示例 -
import numpy as np identity_matrix = np.identity(5) print("单位矩阵: ",identity_matrix)
输出
以下是以上代码 −
单位矩阵: [[1. 0. 0. 0. 0.] [0. 1. 0. 0. 0.] [0. 0. 1. 0. 0.] [0. 0. 0. 1. 0.] [0. 0. 0. 1. 0.] [0. 0. 0. 0. 1.]]
示例:在 'identity()' 中指定数据类型
与 numpy.eye() 类似,我们可以使用 dtype 参数指定矩阵的数据类型。默认情况下,矩阵元素的类型为 float,但我们可以根据需要将其更改为 int、complex 或其他数据类型。
在下面的示例中,我们通过将 dtype 参数设置为 int 来生成一个 5x5 的整数单位矩阵 -
import numpy as np int_identity_matrix = np.identity(5, dtype=int) print("整数单位矩阵: ", int_identity_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]]
示例:复数单位矩阵
我们还可以使用 dtype 参数创建复数单位矩阵。这在涉及复数的应用中非常有用。
在下面的例子中,我们生成了一个 3x3 的复数单位矩阵 -
import numpy as np complex_identity_matrix = np.identity(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]]
示例:将 'n' 用作浮点值
数组中的行数必须是整数。如果我们将浮点值赋给 n,则会引发 TypeError。
在以下示例中,我们将 n 赋给了浮点值,并引发了 Error −
import numpy as np Identity_matrix = np.identity(2.2, dtype=complex) print("Identity Matrix: ", Identity_matrix)
输出
以下是上述代码的输出 −
Traceback (most recent call last): File "/home/cg/root/45463/main.py", line 2, in <module> Identity_matrix = np.identity(2.2, dtype=complex) File "/usr/local/lib/python3.10/dist-packages/numpy/core/numeric.py", line 2187, in identity return eye(n, dtype=dtype, like=like) File "/usr/local/lib/python3.10/dist-packages/numpy/lib/twodim_base.py", line 215, in eye m = zeros((N, M), dtype=dtype, order=order) TypeError: 'float' object cannot be interpreted as an integer
numpy_array_creation_routines.html