The eye()
method creates a 2D array with 1s on the diagonal and 0s elsewhere.
Example
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() Syntax
The syntax of eye()
is:
numpy.eye(N, M = None, k = 0, dtype = float, order = 'C')
Note: Here, M = None
implies that M = N
by default.
eye() Arguments
The eye()
method takes the following arguments:
N
- Number of rows in the output (can beint
)M
(optional)- Number of columns in the output (can beint
)k
(optional) - the diagonal in question(can beint
)dtype
(optional) - the datatype of the resultant arrayorder
(optional) - the memory layout of the array (can be'C'
or'F'
)
Notes:
- By default
k
= 0 and represents the main diagonal. k
> 0 represents diagonals above the main diagonalk
< 0 represents diagonals below the main diagonal.
eye() Return Value
The eye()
method returns the resultant array with shape NxM with all elements as 0 except the kth diagonal where all elements are 1.
Example 1: Create a Square Array Using 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)
Output
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.]]
Example 2: Create a Non-Square Array Using eye()
If we pass both N
and M
as arguments, a non-square array is created.
Let us look at an example.
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)
Output
2x3 array [[1. 0. 0.] [0. 1. 0.]] 3x2 array [[1. 0.] [0. 1.] [0. 0.]]
Example 3: Using the Optional dtype Argument With eye()
The optional dtype
argument specifies the data type of the created array.
Let's look at an example.
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)
Output
2x2 float array [[1. 0.] [0. 1.]] 2x2 int array [[1 0] [0 1]] 2x2 string array [['1' ''] ['' '1']]
Note: When the array is converted to a string array, the 0s are replaced by empty strings.
Using the Optional order Argument With eye
With eye()
, there are two possible options for order argument.
'C'
: C stands for C style order where the array is filled row-wise.'F'
: F stands for Fortran-style order where the array is filled column-wise.