def asarray(a, dtype=None, order=None): """Converts an object to array. This is equivalent to ``array(a, dtype, copy=False)``. This function currently does not support the ``order`` option. Args: a: The source object. dtype: Data type specifier. It is inferred from the input by default. order ({'C', 'F'}): Whether to use row-major (C-style) or column-major (Fortran-style) memory representation. Defaults to 'C'. ``order`` is ignored for objects that are not a ``cupy.ndarray``, but have a ``__cuda_array_interface__ attribute``. Returns: cupy.ndarray: An array on the current device. If ``a`` is already on the device, no copy is performed. .. seealso:: :func:`numpy.asarray` """ if not isinstance(a, ndarray) and hasattr(a, '__cuda_array_interface__'): return _convert_object_with_cuda_array_interface(a) return core.array(a, dtype, False, order)
def array(obj, dtype=None, copy=True, order='K', subok=False, ndmin=0): """Creates an array on the current device. This function currently does not support the ``subok`` option. Args: obj: :class:`cupy.ndarray` object or any other object that can be passed to :func:`numpy.array`. dtype: Data type specifier. copy (bool): If ``False``, this function returns ``obj`` if possible. Otherwise this function always returns a new array. order ({'C', 'F', 'A', 'K'}): Row-major (C-style) or column-major (Fortran-style) order. When ``order`` is ``'A'``, it uses ``'F'`` if ``a`` is column-major and uses ``'C'`` otherwise. And when ``order`` is ``'K'``, it keeps strides as closely as possible. If ``obj`` is :class:`numpy.ndarray`, the function returns ``'C'`` or ``'F'`` order array. subok (bool): If ``True``, then sub-classes will be passed-through, otherwise the returned array will be forced to be a base-class array (default). ndmin (int): Minimum number of dimensions. Ones are inserted to the head of the shape if needed. Returns: cupy.ndarray: An array on the current device. .. note:: This method currently does not support ``subok`` argument. .. seealso:: :func:`numpy.array` """ return core.array(obj, dtype, copy, order, subok, ndmin)
def imag(val): '''Returns the imaginary part of the elements of the array. .. seealso:: :func:`numpy.imag` ''' if not isinstance(val, core.ndarray): val = core.array(val) return val.imag
def real(val): '''Returns the real part of the elements of the array. .. seealso:: :func:`numpy.real` ''' if not isinstance(val, core.ndarray): val = core.array(val) return val.real
def imag(val): '''Returns the imaginary part of the elements of the array. .. seealso:: :func:`numpy.imag` ''' if fusion._is_fusing(): return fusion._call_ufunc(core.imag, val) if not isinstance(val, core.ndarray): val = core.array(val) return val.imag
def real(val): '''Returns the real part of the elements of the array. .. seealso:: :func:`numpy.real` ''' if fusion._is_fusing(): return fusion._call_ufunc(core.real, val) if not isinstance(val, core.ndarray): val = core.array(val) return val.real
def asanyarray(a, dtype=None): """Converts an object to array. This is currently equivalent to :func:`~cupy.asarray`, since there is no subclass of ndarray in CuPy. Note that the original :func:`numpy.asanyarray` returns the input array as is if it is an instance of a subtype of :class:`numpy.ndarray`. .. seealso:: :func:`cupy.asarray`, :func:`numpy.asanyarray` """ return core.array(a, dtype, False)
def asanyarray(a, dtype=None, order=None): """Converts an object to array. This is currently equivalent to :func:`cupy.asarray`, since there is no subclass of :class:`cupy.ndarray` in CuPy. Note that the original :func:`numpy.asanyarray` returns the input array as is if it is an instance of a subtype of :class:`numpy.ndarray`. .. seealso:: :func:`cupy.asarray`, :func:`numpy.asanyarray` """ return core.array(a, dtype, False, order)
def asanyarray(a, dtype=None, order=None): """Converts an object to array. This is currently equivalent to :func:`~cupy.asarray`, since there is no subclass of ndarray in CuPy. Note that the original :func:`numpy.asanyarray` returns the input array as is if it is an instance of a subtype of :class:`numpy.ndarray`. .. seealso:: :func:`cupy.asarray`, :func:`numpy.asanyarray` """ if not isinstance(a, ndarray) and hasattr(a, '__cuda_array_interface__'): return _convert_object_with_cuda_array_interface(a) return core.array(a, dtype, False, order)
def asarray(a, dtype=None): """Converts an object to array. This is equivalent to ``array(a, dtype, copy=False)``. This function currently does not support the ``order`` option. Args: a: The source object. dtype: Data type specifier. It is inferred from the input by default. Returns: cupy.ndarray: An array on the current device. If ``a`` is already on the device, no copy is performed. .. seealso:: :func:`numpy.asarray` """ return core.array(a, dtype, False)
def around(a, decimals=0, out=None): """Rounds to the given number of decimals. Args: a (cupy.ndarray): The source array. decimals (int): umber of decimal places to round to (default: 0). If decimals is negative, it specifies the number of positions to the left of the decimal point. out (cupy.ndarray): Output array. Returns: cupy.ndarray: Rounded array. .. seealso:: :func:`numpy.around` """ a = core.array(a, copy=False) return a.round(decimals, out)
def array(obj, dtype=None, copy=True, ndmin=0): """Creates an array on the current device. This function currently does not support the ``order`` and ``subok`` options. Args: obj: :class:`cupy.ndarray` object or any other object that can be passed to :func:`numpy.array`. dtype: Data type specifier. copy (bool): If ``False``, this function returns ``obj`` if possible. Otherwise this function always returns a new array. ndmin (int): Minimum number of dimensions. Ones are inserted to the head of the shape if needed. Returns: cupy.ndarray: An array on the current device. .. seealso:: :func:`numpy.array` """ # TODO(beam2d): Support order and subok options return core.array(obj, dtype, copy, ndmin)
def test_unsupported_type(self): arr = numpy.ndarray((2, 3), dtype=object) with pytest.raises(ValueError): core.array(arr)
def test_unsupported_type(self): arr = numpy.ndarray((2, 3), dtype=object) with self.assertRaises(ValueError): core.array(arr)
def _round(a, decimals, out=None): a = core.array(a, copy=False) return a.round(decimals, out)