dpnp.ufunc
- class dpnp.ufunc[source]
Functions that operate element by element on whole arrays.
Calling ufuncs: op(*x[, out], **kwargs)
Apply op to the arguments *x elementwise, broadcasting the arguments.
- Parameters:
x ({dpnp.ndarray, usm_ndarray}) -- One or two input arrays.
out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. Array must have the correct shape and the expected data type.
order ({None, "C", "F", "A", "K"}, optional) -- Memory layout of the newly output array, Cannot be provided together with out. Default:
"K"
.dtype ({None, dtype}, optional) -- If provided, the destination array will have this dtype. Cannot be provided together with out. Default:
None
.casting ({"no", "equiv", "safe", "same_kind", "unsafe"}, optional) -- Controls what kind of data casting may occur. Cannot be provided together with out. Default:
"same_kind"
.
Limitations
Keyword arguments where and subok are supported with their default values. Other keyword arguments is currently unsupported. Otherwise
NotImplementedError
exception will be raised.Methods
- outer(x1, x2, out=None, where=True, order='K', dtype=None, subok=True, **kwargs)[source]
Apply the ufunc op to all pairs (a, b) with a in A and b in B.
- Parameters:
x1 ({dpnp.ndarray, usm_ndarray}) -- First input array.
x2 ({dpnp.ndarray, usm_ndarray}) -- Second input array.
out ({None, dpnp.ndarray, usm_ndarray}, optional) -- Output array to populate. Array must have the correct shape and the expected data type.
**kwargs -- For other keyword-only arguments, see the
dpnp.ufunc
.
- Returns:
out -- Output array. The data type of the returned array is determined by the Type Promotion Rules.
- Return type:
dpnp.ndarray
Limitations
Parameters where and subok are supported with their default values. Keyword argument kwargs is currently unsupported. Otherwise
NotImplementedError
exception will be raised.See also
dpnp.outer
A less powerful version of dpnp.multiply.outer that ravels all inputs to 1D. This exists primarily for compatibility with old code.
dpnp.tensordot
dpnp.tensordot(a, b, axes=((), ())) and dpnp.multiply.outer(a, b) behave same for all dimensions of a and b.
Examples
>>> import dpnp as np >>> A = np.array([1, 2, 3]) >>> B = np.array([4, 5, 6]) >>> np.multiply.outer(A, B) array([[ 4, 5, 6], [ 8, 10, 12], [12, 15, 18]])
A multi-dimensional example:
>>> A = np.array([[1, 2, 3], [4, 5, 6]]) >>> A.shape (2, 3) >>> B = np.array([[1, 2, 3, 4]]) >>> B.shape (1, 4) >>> C = np.multiply.outer(A, B) >>> C.shape; C (2, 3, 1, 4) array([[[[ 1, 2, 3, 4]], [[ 2, 4, 6, 8]], [[ 3, 6, 9, 12]]], [[[ 4, 8, 12, 16]], [[ 5, 10, 15, 20]], [[ 6, 12, 18, 24]]]])
- __eq__(value, /)
Return self==value.
- __ne__(value, /)
Return self!=value.
- __lt__(value, /)
Return self<value.
- __le__(value, /)
Return self<=value.
- __gt__(value, /)
Return self>value.
- __ge__(value, /)
Return self>=value.
Attributes
- nargs
Returns the number of arguments treated.
Examples
>>> import dpnp as np >>> np.add.nin 3 >>> np.multiply.nin 3 >>> np.power.nin 3 >>> np.exp.nin 2
- nin
Returns the number of arguments treated as inputs.
Examples
>>> import dpnp as np >>> np.add.nin 2 >>> np.multiply.nin 2 >>> np.power.nin 2 >>> np.exp.nin 1
- nout
Returns the number of arguments treated as outputs.
Examples
>>> import dpnp as np >>> np.add.nin 1 >>> np.multiply.nin 1 >>> np.power.nin 1 >>> np.exp.nin 1
- ntypes
The number of types.
Examples
>>> import dpnp as np >>> np.add.ntypes 14 >>> np.multiply.ntypes 14 >>> np.power.ntypes 13 >>> np.exp.ntypes 5 >>> np.remainder.ntypes 11
- types
Returns information about types supported by implementation function, using NumPy's character encoding for data types, e.g.
Examples
>>> import dpnp as np >>> np.add.types ['??->?', 'bb->b', 'BB->B', 'hh->h', 'HH->H', 'ii->i', 'II->I', 'll->l', 'LL->L', 'ee->e', 'ff->f', 'dd->d', 'FF->F', 'DD->D']
>>> np.multiply.types ['??->?', 'bb->b', 'BB->B', 'hh->h', 'HH->H', 'ii->i', 'II->I', 'll->l', 'LL->L', 'ee->e', 'ff->f', 'dd->d', 'FF->F', 'DD->D']
>>> np.power.types ['bb->b', 'BB->B', 'hh->h', 'HH->H', 'ii->i', 'II->I', 'll->l', 'LL->L', 'ee->e', 'ff->f', 'dd->d', 'FF->F', 'DD->D']
>>> np.exp.types ['e->e', 'f->f', 'd->d', 'F->F', 'D->D']
>>> np.remainder.types ['bb->b', 'BB->B', 'hh->h', 'HH->H', 'ii->i', 'II->I', 'll->l', 'LL->L', 'ee->e', 'ff->f', 'dd->d']