def test_multi_insert(): z = np.random.randint(10, size=(1, 2)) c = da.from_array(z, chunks=(1, 2)) assert_eq( np.insert(np.insert(z, [0, 1], -1, axis=0), [1], -1, axis=1), da.insert(da.insert(c, [0, 1], -1, axis=0), [1], -1, axis=1), )
def _rmatvec(self, x): if not self.inplace: x = x.copy() if not self.reshape: y = da.insert(x, self.fill, 0, axis=-1) else: x = da.reshape(x, self.dimsd) y = da.insert(x, self.fill, 0, axis=self.dir) return y
def count(a): """counts number of distinct "on" switches in a boolean 1d array and assigns them cumulatively """ a = a.astype(int) count = da.cumsum(da.insert(da.maximum(a[1:] - a[:-1], 0), a[0], 0, axis=0), axis=0) return da.where(a == True, count, 0)
def _rmatvec(self, x): if self.reshape: x = da.reshape(x, da.insert([np.prod(self.dims)], 0, self.A.shape[0])) y = self.A.conj().T.dot(x) if self.reshape: return y.ravel() else: return y
def weighting(spec_dist, temp_dist, comb_dist, similar_pixels_filtered): # Assign max weight (1) when the temporal or spectral distance is zero zero_spec_dist = da.where(spec_dist[:,mid_idx][:,None] == 1, 1, 0) zero_temp_dist = da.where(temp_dist[:,mid_idx][:,None] == 1, 1, 0) zero_dist_mid = da.where((zero_spec_dist == 1), zero_spec_dist, zero_temp_dist) shape = da.subtract(spec_dist.shape,(0,1)) zero_dist = da.zeros(shape, chunks=(spec_dist.shape[0],shape[1])) zero_dist = da.insert(zero_dist, [mid_idx], zero_dist_mid, axis=1) weights = da.where((da.sum(zero_dist,1)[:,None] == 1), zero_dist, comb_dist) # Calculate weights only for the filtered spectrally similar pixels weights_filt = weights*similar_pixels_filtered # Normalize weights norm_weights = da.rechunk(weights_filt/(da.sum(weights_filt,1)[:,None]), chunks = spec_dist.chunksize) print ("Done weighting!", norm_weights) return norm_weights
def test_insert(): x = np.random.randint(10, size=(10, 10)) a = da.from_array(x, chunks=(5, 5)) y = np.random.randint(10, size=(5, 10)) b = da.from_array(y, chunks=(4, 4)) assert_eq(np.insert(x, 0, -1, axis=0), da.insert(a, 0, -1, axis=0)) assert_eq(np.insert(x, 3, -1, axis=-1), da.insert(a, 3, -1, axis=-1)) assert_eq(np.insert(x, 5, -1, axis=1), da.insert(a, 5, -1, axis=1)) assert_eq(np.insert(x, -1, -1, axis=-2), da.insert(a, -1, -1, axis=-2)) assert_eq(np.insert(x, [2, 3, 3], -1, axis=1), da.insert(a, [2, 3, 3], -1, axis=1)) assert_eq(np.insert(x, [2, 3, 8, 8, -2, -2], -1, axis=0), da.insert(a, [2, 3, 8, 8, -2, -2], -1, axis=0)) assert_eq(np.insert(x, slice(1, 4), -1, axis=1), da.insert(a, slice(1, 4), -1, axis=1)) assert_eq(np.insert(x, [2] * 3 + [5] * 2, y, axis=0), da.insert(a, [2] * 3 + [5] * 2, b, axis=0)) assert_eq(np.insert(x, 0, y[0], axis=1), da.insert(a, 0, b[0], axis=1)) assert same_keys(da.insert(a, [2, 3, 8, 8, -2, -2], -1, axis=0), da.insert(a, [2, 3, 8, 8, -2, -2], -1, axis=0)) with pytest.raises(NotImplementedError): da.insert(a, [4, 2], -1, axis=0) with pytest.raises(IndexError): da.insert(a, [3], -1, axis=2) with pytest.raises(IndexError): da.insert(a, [3], -1, axis=-3)
def test_multi_insert(): z = np.random.randint(10, size=(1, 2)) c = da.from_array(z, chunks=(1, 2)) assert_eq(np.insert(np.insert(z, [0, 1], -1, axis=0), [1], -1, axis=1), da.insert(da.insert(c, [0, 1], -1, axis=0), [1], -1, axis=1))
def insert(self, obj, values, axis=0): return as_dask_column(da.insert(self, obj, values, axis=axis), info=self.info)