NumPy eye()

eye() 方法创建一个 2D 数组,其对角线元素为 1,其余元素为 0。

示例

import numpy as np

# create a 3x3 array with 1s in diagonal and 0s elsewhere array1 = np.eye(3)
print(array1) ''' Output: [[1. 0. 0.] [0. 1. 0.] [0. 0. 1.]] '''

eye() 语法

eye() 的语法是

numpy.eye(N, M = None, k = 0, dtype = float, order = 'C')

注意:这里 M = None 表示默认情况下 M = N


eye() 参数

eye() 方法接受以下参数

  • N - 输出的行数(可以是 int
  • M(可选)- 输出的列数(可以是 int
  • k(可选)- 指定的对角线(可以是 int
  • dtype(可选)- 结果数组的数据类型
  • order(可选)- 数组的内存布局(可以是 'C''F'

注意事项:

  • 默认情况下 k = **0**,表示主对角线。
    • k > **0** 表示主对角线上方的对角线
    • k < **0** 表示主对角线以下的对角线。

eye() 返回值

eye() 方法返回形状为 NxM 的结果数组,其中除了第 k 条对角线上的元素为 1 外,所有其他元素都为 0。


示例 1:使用 eye() 创建一个方阵

import numpy as np

# create a square 2x2 array with 1s at diagonal array1 = np.eye(2)
print('2x2 square array\n', array1)
# create a square 2x2 array with 1 above diagonal array2 = np.eye(2, k=1)
print('2x2 square array with k = 1\n', array2)
# create a square 2x2 array with 1 below diagonal array3 = np.eye(2, k=-1)
print('2x2 square array with k = -1\n', array3)

输出

2x2 square array
 [[1. 0.]
 [0. 1.]]
2x2 square array with k = 1
 [[0. 1.]
 [0. 0.]]
2x2 square array with k = -1
 [[0. 0.]
 [1. 0.]]

示例 2:使用 eye() 创建一个非方阵

如果我们将 NM 都作为参数传递,则会创建一个非方阵。

让我们看一个例子。

import numpy as np

# create a 2x3 array with 1s at diagonal array1 = np.eye(2, 3)
print('2x3 array\n', array1)
# create a 3x2 array with 1s at diagonal array2 = np.eye(3, 2)
print('3x2 array\n', array2)

输出

2x3  array
[[1. 0. 0.]
 [0. 1. 0.]]
3x2  array
 [[1. 0.]
 [0. 1.]
 [0. 0.]]

示例 3:将可选的 dtype 参数与 eye() 一起使用

可选的 dtype 参数指定了创建数组的数据类型。

让我们看一个例子。

import numpy as np

# create a 2x2 float array array1 = np.eye(2, )
print('2x2 float array\n', array1)
# create a 2x2 integer array array2 = np.eye(2, dtype = int)
print('2x2 int array\n', array2)
# create a 2x2 string array array3 = np.eye(2, dtype = str)
print('2x2 string array\n', array3)

输出

2x2 float  array
[[1. 0.]
 [0. 1.]]
2x2 int  array
 [[1 0]
 [0 1]]
2x2 string  array
 [['1' '']
 ['' '1']]

注意:当数组转换为字符串数组时,**0** 会被空字符串替换。


将可选的 order 参数与 eye 一起使用

使用 eye() 时,order 参数有两种可能的选项。

  • 'C':C 代表 C 语言风格的顺序,数组按行填充。
  • 'F':F 代表 Fortran 风格的顺序,数组按列填充。

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战