def test_vectorize_2d_lazy(): # Test vectorization in 1d without data type --> lazy vectorization arr = np.empty((2, 5), dtype='int') arr[0] = ([-3, -2, -1, 0, 1]) arr[1] = ([-1, 0, 1, 2, 3]) mg = sparse_meshgrid([-3, -2, -1, 0, 1], [-1, 0, 1, 2, 3]) val_1 = (-1, 1) val_2 = (2, 1) @vectorize def simple_func(x): return 0 if x[0] < 0 and x[1] > 0 else 1 true_result_arr = [1, 1, 0, 1, 1] true_result_mg = [[1, 1, 0, 0, 0], [1, 1, 0, 0, 0], [1, 1, 0, 0, 0], [1, 1, 1, 1, 1], [1, 1, 1, 1, 1]] # Out of place out = simple_func(arr) assert isinstance(out, np.ndarray) assert is_int_dtype(out.dtype) assert out.shape == (5, ) assert all_equal(out, true_result_arr) out = simple_func(mg) assert isinstance(out, np.ndarray) assert is_int_dtype(out.dtype) assert out.shape == (5, 5) assert all_equal(out, true_result_mg) assert simple_func(val_1) == 0 assert simple_func(val_2) == 1
def test_vectorize_callable_class(): # Test vectorization in 1d without data type --> lazy vectorization arr = [[-2, -1, 0, 1, 2]] mg = [[-3, -2, -1, 0, 1]] val_1 = -1 val_2 = 2 # Class with __call__ method class CallableClass(object): def __call__(self, x): return 0 if x < 0 else 1 vectorized_call = vectorize(CallableClass()) true_result_arr = [0, 0, 1, 1, 1] true_result_mg = [0, 0, 0, 1, 1] # Out-of-place out = vectorized_call(arr) assert isinstance(out, np.ndarray) assert is_int_dtype(out.dtype) assert out.shape == (5,) assert all_equal(out, true_result_arr) out = vectorized_call(mg) assert isinstance(out, np.ndarray) assert out.shape == (5,) assert is_int_dtype(out.dtype) assert all_equal(out, true_result_mg) assert vectorized_call(val_1) == 0 assert vectorized_call(val_2) == 1
def test_vectorize_1d_lazy(): # Test vectorization in 1d without data type --> lazy vectorization arr = (np.arange(5) - 2)[None, :] mg = sparse_meshgrid(np.arange(5) - 3) val_1 = -1 val_2 = 2 @vectorize def simple_func(x): return 0 if x < 0 else 1 true_result_arr = [0, 0, 1, 1, 1] true_result_mg = [0, 0, 0, 1, 1] # Out-of-place out = simple_func(arr) assert isinstance(out, np.ndarray) assert is_int_dtype(out.dtype) assert out.shape == (5,) assert all_equal(out, true_result_arr) out = simple_func(mg) assert isinstance(out, np.ndarray) assert out.shape == (5,) assert is_int_dtype(out.dtype) assert all_equal(out, true_result_mg) assert simple_func(val_1) == 0 assert simple_func(val_2) == 1
def test_vectorize_1d_lazy(): # Test vectorization in 1d without data type --> lazy vectorization arr = (np.arange(5) - 2)[None, :] mg = sparse_meshgrid(np.arange(5) - 3) val_1 = -1 val_2 = 2 @vectorize def simple_func(x): return 0 if x < 0 else 1 true_result_arr = [0, 0, 1, 1, 1] true_result_mg = [0, 0, 0, 1, 1] # Out-of-place out = simple_func(arr) assert isinstance(out, np.ndarray) assert is_int_dtype(out.dtype) assert out.shape == (5, ) assert all_equal(out, true_result_arr) out = simple_func(mg) assert isinstance(out, np.ndarray) assert out.shape == (5, ) assert is_int_dtype(out.dtype) assert all_equal(out, true_result_mg) assert simple_func(val_1) == 0 assert simple_func(val_2) == 1
def __init__(self, space): """Initialize an instance. Parameters ---------- space : `FnBase` The domain of the operator. """ if not isinstance(space, LinearSpace): raise TypeError('`space` {!r} not a `LinearSpace`'.format(space)) if _is_integer_only_ufunc(name) and not is_int_dtype(space.dtype): raise ValueError("ufunc '{}' only defined with integral dtype" "".format(name)) if nargin == 1: domain = space else: domain = ProductSpace(space, nargin) if nargout == 1: range = space else: range = ProductSpace(space, nargout) linear = name in LINEAR_UFUNCS Operator.__init__(self, domain=domain, range=range, linear=linear)
def test_vectorize_2d_lazy(): # Test vectorization in 1d without data type --> lazy vectorization arr = np.empty((2, 5), dtype='int') arr[0] = ([-3, -2, -1, 0, 1]) arr[1] = ([-1, 0, 1, 2, 3]) mg = sparse_meshgrid([-3, -2, -1, 0, 1], [-1, 0, 1, 2, 3]) val_1 = (-1, 1) val_2 = (2, 1) @vectorize def simple_func(x): return 0 if x[0] < 0 and x[1] > 0 else 1 true_result_arr = [1, 1, 0, 1, 1] true_result_mg = [[1, 1, 0, 0, 0], [1, 1, 0, 0, 0], [1, 1, 0, 0, 0], [1, 1, 1, 1, 1], [1, 1, 1, 1, 1]] # Out-of-place out = simple_func(arr) assert isinstance(out, np.ndarray) assert is_int_dtype(out.dtype) assert out.shape == (5,) assert all_equal(out, true_result_arr) out = simple_func(mg) assert isinstance(out, np.ndarray) assert is_int_dtype(out.dtype) assert out.shape == (5, 5) assert all_equal(out, true_result_mg) assert simple_func(val_1) == 0 assert simple_func(val_2) == 1
def contains_all(self, array): """Test if `array` is an array of integers.""" dtype = getattr(array, 'dtype', None) if dtype is None: dtype = np.result_type(*array) return is_int_dtype(dtype)
def contains_all(self, other): """Return ``True`` if ``other`` is a sequence of integers.""" dtype = getattr(other, 'dtype', None) if dtype is None: dtype = np.result_type(*other) return is_int_dtype(dtype)