dpnp.eye

dpnp.eye(N, /, M=None, k=0, dtype=None, order='C', *, like=None, device=None, usm_type='device', sycl_queue=None)[source]

Return a 2-D array with ones on the diagonal and zeros elsewhere.

For full documentation refer to numpy.eye.

Parameters:
  • N (int) -- Number of rows in the output.

  • M ({None, int}, optional) -- Number of columns in the output. If None, defaults to N.

  • k (int, optional) -- Index of the diagonal: 0 (the default) refers to the main diagonal, a positive value refers to an upper diagonal, and a negative value to a lower diagonal.

  • dtype ({None, dtype}, optional) -- The desired dtype for the array, e.g., dpnp.int32. Default is the default floating point data type for the device where input array is allocated.

  • order ({None, "C", "F"}, optional) -- Memory layout of the newly output array. Default: "C".

  • device ({None, string, SyclDevice, SyclQueue}, optional) -- An array API concept of device where the output array is created. The device can be None (the default), an OneAPI filter selector string, an instance of dpctl.SyclDevice corresponding to a non-partitioned SYCL device, an instance of dpctl.SyclQueue, or a Device object returned by dpnp.dpnp_array.dpnp_array.device property.

  • usm_type ({None, "device", "shared", "host"}, optional) -- The type of SYCL USM allocation for the output array. Default: "device".

  • sycl_queue ({None, SyclQueue}, optional) -- A SYCL queue to use for output array allocation and copying.

Returns:

out -- An array where all elements are equal to zero, except for the k-th diagonal, whose values are equal to one.

Return type:

dpnp.ndarray

Limitations

Parameter order is supported only with values "C", "F" and None. Parameter like is supported only with default value None. Otherwise, the function raises NotImplementedError exception.

See also

dpnp.identity

Return the identity array.

dpnp.diag

Extract a diagonal or construct a diagonal array.

Examples

>>> import dpnp as np
>>> np.eye(2, dtype=int)
array([[1, 0],
       [0, 1]])
>>> np.eye(3, k=1)
array([[0.,  1.,  0.],
       [0.,  0.,  1.],
       [0.,  0.,  0.]])

Creating an array on a different device or with a specified usm_type

>>> x = np.eye(2, dtype=int) # default case
>>> x, x.device, x.usm_type
(array([[1, 0],
        [0, 1]]), Device(level_zero:gpu:0), 'device')
>>> y = np.eye(2, dtype=int, device="cpu")
>>> y, y.device, y.usm_type
(array([[1, 0],
        [0, 1]]), Device(opencl:cpu:0), 'device')
>>> z = np.eye(2, dtype=int, usm_type="host")
>>> z, z.device, z.usm_type
(array([[1, 0],
        [0, 1]]), Device(level_zero:gpu:0), 'host')