Python numpy.can_cast() Examples
The following are 30
code examples of numpy.can_cast().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
numpy
, or try the search function
.
Example #1
Source File: test_numeric.py From GraphicDesignPatternByPython with MIT License | 6 votes |
def test_can_cast_values(self): # gh-5917 for dt in np.sctypes['int'] + np.sctypes['uint']: ii = np.iinfo(dt) assert_(np.can_cast(ii.min, dt)) assert_(np.can_cast(ii.max, dt)) assert_(not np.can_cast(ii.min - 1, dt)) assert_(not np.can_cast(ii.max + 1, dt)) for dt in np.sctypes['float']: fi = np.finfo(dt) assert_(np.can_cast(fi.min, dt)) assert_(np.can_cast(fi.max, dt)) # Custom exception class to test exception propagation in fromiter
Example #2
Source File: test_numeric.py From vnpy_crypto with MIT License | 6 votes |
def test_can_cast_values(self): # gh-5917 for dt in np.sctypes['int'] + np.sctypes['uint']: ii = np.iinfo(dt) assert_(np.can_cast(ii.min, dt)) assert_(np.can_cast(ii.max, dt)) assert_(not np.can_cast(ii.min - 1, dt)) assert_(not np.can_cast(ii.max + 1, dt)) for dt in np.sctypes['float']: fi = np.finfo(dt) assert_(np.can_cast(fi.min, dt)) assert_(np.can_cast(fi.max, dt)) # Custom exception class to test exception propagation in fromiter
Example #3
Source File: test_numeric.py From predictive-maintenance-using-machine-learning with Apache License 2.0 | 6 votes |
def test_can_cast_values(self): # gh-5917 for dt in np.sctypes['int'] + np.sctypes['uint']: ii = np.iinfo(dt) assert_(np.can_cast(ii.min, dt)) assert_(np.can_cast(ii.max, dt)) assert_(not np.can_cast(ii.min - 1, dt)) assert_(not np.can_cast(ii.max + 1, dt)) for dt in np.sctypes['float']: fi = np.finfo(dt) assert_(np.can_cast(fi.min, dt)) assert_(np.can_cast(fi.max, dt)) # Custom exception class to test exception propagation in fromiter
Example #4
Source File: image.py From Computable with MIT License | 6 votes |
def set_data(self, A): """ Set the image array ACCEPTS: numpy/PIL Image A """ # check if data is PIL Image without importing Image if hasattr(A, 'getpixel'): self._A = pil_to_array(A) else: self._A = cbook.safe_masked_invalid(A) if (self._A.dtype != np.uint8 and not np.can_cast(self._A.dtype, np.float)): raise TypeError("Image data can not convert to float") if (self._A.ndim not in (2, 3) or (self._A.ndim == 3 and self._A.shape[-1] not in (3, 4))): raise TypeError("Invalid dimensions for image data") self._imcache = None self._rgbacache = None self._oldxslice = None self._oldyslice = None
Example #5
Source File: test_base.py From Computable with MIT License | 6 votes |
def _can_cast_samekind(dtype1, dtype2): """Compatibility function for numpy 1.5.1; `casting` kw is numpy >=1.6.x default for casting kw is 'safe', which gives the same result as in 1.5.x and a strict subset of 'same_kind'. So for 1.5.x we just skip the cases where 'safe' is False and 'same_kind' True. """ if np.__version__[:3] == '1.5': return np.can_cast(dtype1, dtype2) else: return np.can_cast(dtype1, dtype2, casting='same_kind') #------------------------------------------------------------------------------ # Generic tests #------------------------------------------------------------------------------ # TODO check that spmatrix( ... , copy=X ) is respected # TODO test prune # TODO test has_sorted_indices
Example #6
Source File: utils.py From nelpy with MIT License | 6 votes |
def set_data(self, A): """ Set the image array ACCEPTS: numpy/PIL Image A """ self._full_res = A self._A = A if (self._A.dtype != np.uint8 and not np.can_cast(self._A.dtype, np.float)): raise TypeError("Image data can not convert to float") if (self._A.ndim not in (2, 3) or (self._A.ndim == 3 and self._A.shape[-1] not in (3, 4))): raise TypeError("Invalid dimensions for image data") self._imcache = None self._rgbacache = None self._oldxslice = None self._oldyslice = None self._sx, self._sy = None, None
Example #7
Source File: test_numeric.py From pySINDy with MIT License | 6 votes |
def test_can_cast_values(self): # gh-5917 for dt in np.sctypes['int'] + np.sctypes['uint']: ii = np.iinfo(dt) assert_(np.can_cast(ii.min, dt)) assert_(np.can_cast(ii.max, dt)) assert_(not np.can_cast(ii.min - 1, dt)) assert_(not np.can_cast(ii.max + 1, dt)) for dt in np.sctypes['float']: fi = np.finfo(dt) assert_(np.can_cast(fi.min, dt)) assert_(np.can_cast(fi.max, dt)) # Custom exception class to test exception propagation in fromiter
Example #8
Source File: utils.py From mars with Apache License 2.0 | 6 votes |
def check_out_param(out, t, casting): from .base import broadcast_to if not hasattr(out, 'shape'): raise TypeError('return arrays must be a tensor') try: broadcast_to(t, out.shape) except ValueError: raise ValueError("operands could not be broadcast together " "with shapes ({0}) ({1})".format(','.join(str(s) for s in t.shape), ','.join(str(s) for s in out.shape))) if not np.can_cast(t.dtype, out.dtype, casting): raise TypeError("output (typecode '{0}') could not be coerced " "to provided output paramter (typecode '{1}') " "according to the casting rule ''{2}''".format(t.dtype.char, out.dtype.char, casting))
Example #9
Source File: test_numeric.py From Mastering-Elasticsearch-7.0 with MIT License | 6 votes |
def test_can_cast_values(self): # gh-5917 for dt in np.sctypes['int'] + np.sctypes['uint']: ii = np.iinfo(dt) assert_(np.can_cast(ii.min, dt)) assert_(np.can_cast(ii.max, dt)) assert_(not np.can_cast(ii.min - 1, dt)) assert_(not np.can_cast(ii.max + 1, dt)) for dt in np.sctypes['float']: fi = np.finfo(dt) assert_(np.can_cast(fi.min, dt)) assert_(np.can_cast(fi.max, dt)) # Custom exception class to test exception propagation in fromiter
Example #10
Source File: test_numeric.py From recruit with Apache License 2.0 | 6 votes |
def test_can_cast_values(self): # gh-5917 for dt in np.sctypes['int'] + np.sctypes['uint']: ii = np.iinfo(dt) assert_(np.can_cast(ii.min, dt)) assert_(np.can_cast(ii.max, dt)) assert_(not np.can_cast(ii.min - 1, dt)) assert_(not np.can_cast(ii.max + 1, dt)) for dt in np.sctypes['float']: fi = np.finfo(dt) assert_(np.can_cast(fi.min, dt)) assert_(np.can_cast(fi.max, dt)) # Custom exception class to test exception propagation in fromiter
Example #11
Source File: test_base.py From GraphicDesignPatternByPython with MIT License | 6 votes |
def test_idiv_scalar(self): def check(dtype): dat = self.dat_dtypes[dtype] datsp = self.datsp_dtypes[dtype] if np.can_cast(type(2), dtype, casting='same_kind'): a = datsp.copy() a /= 2 b = dat.copy() b /= 2 assert_array_equal(b, a.todense()) if np.can_cast(type(17.3), dtype, casting='same_kind'): a = datsp.copy() a /= 17.3 b = dat.copy() b /= 17.3 assert_array_equal(b, a.todense()) for dtype in self.math_dtypes: # /= should only be used with float dtypes to avoid implicit # casting. if not np.can_cast(dtype, np.int_): check(dtype)
Example #12
Source File: image.py From ImageFusion with MIT License | 6 votes |
def set_data(self, A): """ Set the image array ACCEPTS: numpy/PIL Image A """ # check if data is PIL Image without importing Image if hasattr(A, 'getpixel'): self._A = pil_to_array(A) else: self._A = cbook.safe_masked_invalid(A) if (self._A.dtype != np.uint8 and not np.can_cast(self._A.dtype, np.float)): raise TypeError("Image data can not convert to float") if (self._A.ndim not in (2, 3) or (self._A.ndim == 3 and self._A.shape[-1] not in (3, 4))): raise TypeError("Invalid dimensions for image data") self._imcache = None self._rgbacache = None self._oldxslice = None self._oldyslice = None
Example #13
Source File: image.py From matplotlib-4-abaqus with MIT License | 6 votes |
def set_data(self, A): """ Set the image array ACCEPTS: numpy/PIL Image A """ # check if data is PIL Image without importing Image if hasattr(A, 'getpixel'): self._A = pil_to_array(A) else: self._A = cbook.safe_masked_invalid(A) if (self._A.dtype != np.uint8 and not np.can_cast(self._A.dtype, np.float)): raise TypeError("Image data can not convert to float") if (self._A.ndim not in (2, 3) or (self._A.ndim == 3 and self._A.shape[-1] not in (3, 4))): raise TypeError("Invalid dimensions for image data") self._imcache = None self._rgbacache = None self._oldxslice = None self._oldyslice = None
Example #14
Source File: image.py From neural-network-animation with MIT License | 6 votes |
def set_data(self, A): """ Set the image array ACCEPTS: numpy/PIL Image A """ # check if data is PIL Image without importing Image if hasattr(A, 'getpixel'): self._A = pil_to_array(A) else: self._A = cbook.safe_masked_invalid(A) if (self._A.dtype != np.uint8 and not np.can_cast(self._A.dtype, np.float)): raise TypeError("Image data can not convert to float") if (self._A.ndim not in (2, 3) or (self._A.ndim == 3 and self._A.shape[-1] not in (3, 4))): raise TypeError("Invalid dimensions for image data") self._imcache = None self._rgbacache = None self._oldxslice = None self._oldyslice = None
Example #15
Source File: test_core.py From astropy-healpix with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_lonlat_to_healpix_shape(): healpix_index = lonlat_to_healpix(2 * u.deg, 3 * u.deg, 8) assert np.can_cast(healpix_index, np.int64) lon, lat = np.ones((2, 4)) * u.deg, np.zeros((2, 4)) * u.deg healpix_index = lonlat_to_healpix(lon, lat, 8) assert healpix_index.shape == (2, 4) healpix_index, dx, dy = lonlat_to_healpix(2 * u.deg, 3 * u.deg, 8, return_offsets=True) assert np.can_cast(healpix_index, np.int64) assert isinstance(dx, float) assert isinstance(dy, float) lon, lat = np.ones((2, 4)) * u.deg, np.zeros((2, 4)) * u.deg healpix_index, dx, dy = lonlat_to_healpix(lon, lat, 8, return_offsets=True) assert healpix_index.shape == (2, 4) assert dx.shape == (2, 4) assert dy.shape == (2, 4)
Example #16
Source File: test_base.py From GraphicDesignPatternByPython with MIT License | 6 votes |
def test_imul_scalar(self): def check(dtype): dat = self.dat_dtypes[dtype] datsp = self.datsp_dtypes[dtype] # Avoid implicit casting. if np.can_cast(type(2), dtype, casting='same_kind'): a = datsp.copy() a *= 2 b = dat.copy() b *= 2 assert_array_equal(b, a.todense()) if np.can_cast(type(17.3), dtype, casting='same_kind'): a = datsp.copy() a *= 17.3 b = dat.copy() b *= 17.3 assert_array_equal(b, a.todense()) for dtype in self.math_dtypes: check(dtype)
Example #17
Source File: sputils.py From Splunking-Crime with GNU Affero General Public License v3.0 | 5 votes |
def upcast(*args): """Returns the nearest supported sparse dtype for the combination of one or more types. upcast(t0, t1, ..., tn) -> T where T is a supported dtype Examples -------- >>> upcast('int32') <type 'numpy.int32'> >>> upcast('bool') <type 'numpy.bool_'> >>> upcast('int32','float32') <type 'numpy.float64'> >>> upcast('bool',complex,float) <type 'numpy.complex128'> """ t = _upcast_memo.get(hash(args)) if t is not None: return t upcast = np.find_common_type(args, []) for t in supported_dtypes: if np.can_cast(upcast, t): _upcast_memo[hash(args)] = t return t raise TypeError('no supported conversion for types: %r' % (args,))
Example #18
Source File: sputils.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def upcast(*args): """Returns the nearest supported sparse dtype for the combination of one or more types. upcast(t0, t1, ..., tn) -> T where T is a supported dtype Examples -------- >>> upcast('int32') <type 'numpy.int32'> >>> upcast('bool') <type 'numpy.bool_'> >>> upcast('int32','float32') <type 'numpy.float64'> >>> upcast('bool',complex,float) <type 'numpy.complex128'> """ t = _upcast_memo.get(hash(args)) if t is not None: return t upcast = np.find_common_type(args, []) for t in supported_dtypes: if np.can_cast(upcast, t): _upcast_memo[hash(args)] = t return t raise TypeError('no supported conversion for types: %r' % (args,))
Example #19
Source File: internals.py From Splunking-Crime with GNU Affero General Public License v3.0 | 5 votes |
def replace(self, to_replace, value, inplace=False, filter=None, regex=False, convert=True, mgr=None): inplace = validate_bool_kwarg(inplace, 'inplace') to_replace_values = np.atleast_1d(to_replace) if not np.can_cast(to_replace_values, bool): return self return super(BoolBlock, self).replace(to_replace, value, inplace=inplace, filter=filter, regex=regex, convert=convert, mgr=mgr)
Example #20
Source File: print_coercion_tables.py From ImageFusion with MIT License | 5 votes |
def print_cancast_table(ntypes): print('X', end=' ') for char in ntypes: print(char, end=' ') print() for row in ntypes: print(row, end=' ') for col in ntypes: print(int(np.can_cast(row, col)), end=' ') print()
Example #21
Source File: regular_grid_interpolator.py From MultiPlanarUNet with MIT License | 5 votes |
def __init__(self, points, values, method="linear", bounds_error=True, fill_value=np.nan, dtype=np.float32): if method not in ["linear", "nearest", "kNN"]: raise ValueError("Method '%s' is not defined" % method) self.method = method self.bounds_error = bounds_error if not hasattr(values, 'ndim'): # allow reasonable duck-typed values values = np.asarray(values) if len(points) > values.ndim: raise ValueError("There are %d point arrays, but values has %d " "dimensions" % (len(points), values.ndim)) # if hasattr(values, 'dtype') and hasattr(values, 'astype'): # if not np.issubdtype(values.dtype, np.inexact): # values = values.astype(float) self.fill_value = np.array(fill_value).astype(dtype) if self.fill_value is not None: fill_value_dtype = self.fill_value.dtype if (hasattr(values, 'dtype') and not np.can_cast(fill_value_dtype, values.dtype, casting='same_kind')): raise ValueError("fill_value must be either 'None' or " "of a type compatible with values") for i, p in enumerate(points): if not np.all(np.diff(p) > 0.): raise ValueError("The points in dimension %d must be strictly " "ascending" % i) if not np.asarray(p).ndim == 1: raise ValueError("The points in dimension %d must be " "1-dimensional" % i) if not values.shape[i] == len(p): raise ValueError("There are %d points and %d values in " "dimension %d" % (len(p), values.shape[i], i)) self.grid = tuple([np.asarray(p) for p in points]) self.values = values
Example #22
Source File: regular_grid_interpolater.py From SmoothParticleNets with MIT License | 5 votes |
def __init__(self, points, values, method="linear", bounds_error=True, fill_value=np.nan): if method not in ["linear", "nearest"]: raise ValueError("Method '%s' is not defined" % method) self.method = method self.bounds_error = bounds_error if not hasattr(values, 'ndim'): # allow reasonable duck-typed values values = np.asarray(values) if len(points) > values.ndim: raise ValueError("There are %d point arrays, but values has %d " "dimensions" % (len(points), values.ndim)) if hasattr(values, 'dtype') and hasattr(values, 'astype'): if not np.issubdtype(values.dtype, np.inexact): values = values.astype(float) self.fill_value = fill_value if fill_value is not None: fill_value_dtype = np.asarray(fill_value).dtype if (hasattr(values, 'dtype') and not np.can_cast(fill_value_dtype, values.dtype, casting='same_kind')): raise ValueError("fill_value must be either 'None' or " "of a type compatible with values") for i, p in enumerate(points): if not np.all(np.diff(p) > 0.): raise ValueError("The points in dimension %d must be strictly " "ascending" % i) if not np.asarray(p).ndim == 1: raise ValueError("The points in dimension %d must be " "1-dimensional" % i) if not values.shape[i] == len(p): raise ValueError("There are %d points and %d values in " "dimension %d" % (len(p), values.shape[i], i)) self.grid = tuple([np.asarray(p) for p in points]) self.values = values
Example #23
Source File: __init__.py From TextDetector with GNU General Public License v3.0 | 5 votes |
def _validate_impl(self, is_numeric, batch): """ .. todo:: WRITEME """ if isinstance(batch, tuple): raise TypeError("This space only supports simple dtypes, but " "received a composite batch.") # Checks for information-destroying casts. # # To be maximally strict, we'd guard against all loss of precision by # checking if np.can_cast(batch.dtype, self.dtype). # # Because this prohibits float64->float32, it breaks too much of the # codebase (float64 is default float, float32 is default CUDA float for # many graphics cards). # # Therefore, we only prohibit the following: # * non-integral type to integral type # * complex to non-complex def is_complex(dtype): return np.issubdtype(dtype, np.complex) def is_integral(dtype): return np.issubdtype(dtype, np.integer) if self.dtype is not None: if (is_complex(batch.dtype) and not is_complex(self.dtype)) or \ (not is_integral(batch.dtype) and is_integral(self.dtype)): raise TypeError("Cannot safely cast batch dtype %s to " "space's dtype %s. " % (batch.dtype, self.dtype))
Example #24
Source File: test_einsum.py From cupy with MIT License | 5 votes |
def test_einsum_unary_dtype(self, xp, dtype_a, dtype_out): if not numpy.can_cast(dtype_a, dtype_out): # skip this combination return xp.array([]) a = testing.shaped_arange(self.shape_a, xp, dtype_a) return xp.einsum(self.subscripts, a, dtype=dtype_out)
Example #25
Source File: print_coercion_tables.py From predictive-maintenance-using-machine-learning with Apache License 2.0 | 5 votes |
def print_cancast_table(ntypes): print('X', end=' ') for char in ntypes: print(char, end=' ') print() for row in ntypes: print(row, end=' ') for col in ntypes: print(int(np.can_cast(row, col)), end=' ') print()
Example #26
Source File: _utils.py From dcor with MIT License | 5 votes |
def _can_be_double(x): """ Return if the array can be safely converted to double. That happens when the dtype is a float with the same size of a double or narrower, or when is an integer that can be safely converted to double (if the roundtrip conversion works). """ return ((np.issubdtype(x.dtype, np.floating) and x.dtype.itemsize <= np.dtype(float).itemsize) or (np.issubdtype(x.dtype, np.signedinteger) and np.can_cast(x, float)))
Example #27
Source File: subtensor.py From attention-lvcsr with MIT License | 5 votes |
def perform(self, node, inp, out_): x, i = inp out, = out_ # Copy always implied by numpy advanced indexing semantic. if out[0] is not None and out[0].shape == (len(i),) + x.shape[1:]: o = out[0] else: o = None # If i.dtype is more precise than numpy.intp (int32 on 32-bit machines, # int64 on 64-bit machines), numpy may raise the following error: # TypeError: array cannot be safely cast to required type. # We need to check if values in i can fit in numpy.intp, because # if they don't, that should be an error (no array can have that # many elements on a 32-bit arch). if i.dtype != numpy.intp: i_ = theano._asarray(i, dtype=numpy.intp) if not numpy.can_cast(i.dtype, numpy.intp): # Check if there was actually an incorrect conversion if numpy.any(i != i_): raise IndexError( 'index contains values that are bigger ' 'than the maximum array size on this system.', i) i = i_ out[0] = x.take(i, axis=0, out=o)
Example #28
Source File: test_image.py From python3_ios with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_imshow_float128(): fig, ax = plt.subplots() ax.imshow(np.zeros((3, 3), dtype=np.longdouble)) with (ExitStack() if np.can_cast(np.longdouble, np.float64, "equiv") else pytest.warns(UserWarning)): # Ensure that drawing doesn't cause crash. fig.canvas.draw()
Example #29
Source File: image.py From python3_ios with BSD 3-Clause "New" or "Revised" License | 5 votes |
def set_data(self, A): """ Set the image array. Note that this function does *not* update the normalization used. Parameters ---------- A : array-like """ self._A = cbook.safe_masked_invalid(A, copy=True) if (self._A.dtype != np.uint8 and not np.can_cast(self._A.dtype, float, "same_kind")): raise TypeError("Image data cannot be converted to float") if not (self._A.ndim == 2 or self._A.ndim == 3 and self._A.shape[-1] in [3, 4]): raise TypeError("Invalid dimensions for image data") if self._A.ndim == 3: # If the input data has values outside the valid range (after # normalisation), we issue a warning and then clip X to the bounds # - otherwise casting wraps extreme values, hiding outliers and # making reliable interpretation impossible. high = 255 if np.issubdtype(self._A.dtype, np.integer) else 1 if self._A.min() < 0 or high < self._A.max(): _log.warning( 'Clipping input data to the valid range for imshow with ' 'RGB data ([0..1] for floats or [0..255] for integers).' ) self._A = np.clip(self._A, 0, high) # Cast unsupported integer types to uint8 if self._A.dtype != np.uint8 and np.issubdtype(self._A.dtype, np.integer): self._A = self._A.astype(np.uint8) self._imcache = None self._rgbacache = None self.stale = True
Example #30
Source File: sputils.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def get_sum_dtype(dtype): """Mimic numpy's casting for np.sum""" if np.issubdtype(dtype, np.float_): return np.float_ if dtype.kind == 'u' and np.can_cast(dtype, np.uint): return np.uint if np.can_cast(dtype, np.int_): return np.int_ return dtype