dpnp.mgrid

dpnp.mgrid = <dpnp.dpnp_iface_arraycreation.MGridClass object>

Construct a dense multi-dimensional "meshgrid".

For full documentation refer to numpy.mgrid.

Parameters:
  • 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 is "device".

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

Returns:

out -- Returns one array of grid indices, grid.shape = (len(dimensions),) + tuple(dimensions).

Return type:

one dpnp.ndarray or tuple of dpnp.ndarray

Examples

>>> import dpnp as np
>>> np.mgrid[0:5,0:5]
array([[[0, 0, 0, 0, 0],
        [1, 1, 1, 1, 1],
        [2, 2, 2, 2, 2],
        [3, 3, 3, 3, 3],
        [4, 4, 4, 4, 4]],
       [[0, 1, 2, 3, 4],
        [0, 1, 2, 3, 4],
        [0, 1, 2, 3, 4],
        [0, 1, 2, 3, 4],
        [0, 1, 2, 3, 4]]])

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

>>> x = np.mgrid[-1:1:5j] # default case
>>> x, x.device, x.usm_type
(array([-1. , -0.5,  0. ,  0.5,  1. ]), Device(level_zero:gpu:0), 'device')
>>> y = np.mgrid(device="cpu")[-1:1:5j]
>>> y, y.device, y.usm_type
(array([-1. , -0.5,  0. ,  0.5,  1. ]), Device(opencl:cpu:0), 'device')
>>> z = np.mgrid(usm_type="host")[-1:1:5j]
>>> z, z.device, z.usm_type
(array([-1. , -0.5,  0. ,  0.5,  1. ]), Device(level_zero:gpu:0), 'host')