def testSparseCreation(self): s = SparseNDArray(self.s1) self.assertEqual(s.ndim, 2) self.assertIsInstance(s, SparseMatrix) self.assertArrayEqual(s.toarray(), self.s1.A) self.assertArrayEqual(s.todense(), self.s1.A) v = SparseNDArray(self.v1, shape=(3,)) self.assertTrue(s.ndim, 1) self.assertIsInstance(v, SparseVector) self.assertEqual(v.shape, (3,)) self.assertArrayEqual(v.todense(), self.v1_data) self.assertArrayEqual(v.toarray(), self.v1_data) self.assertArrayEqual(v, self.v1_data)
def test_sparse_creation(): s = SparseNDArray(s1_data) assert s.ndim == 2 assert isinstance(s, SparseMatrix) assertArrayEqual(s.toarray(), s1_data.A) assertArrayEqual(s.todense(), s1_data.A) v = SparseNDArray(v1, shape=(3, )) assert s.ndim assert isinstance(v, SparseVector) assert v.shape == (3, ) assertArrayEqual(v.todense(), v1_data) assertArrayEqual(v.toarray(), v1_data) assertArrayEqual(v, v1_data)
def test_sparse_mod(): s1 = SparseNDArray(s1_data) s2 = SparseNDArray(s2_data) assertArrayEqual(s1 % s2, s1.toarray() % s2.toarray()) assertArrayEqual(s1 % d1, s1.toarray() % d1) assertArrayEqual(d1 % s1, d1 % s1.toarray()) assertArrayEqual(s1 % 2, s1.toarray() % 2) assertArrayEqual(2 % s1, 2 % s1.toarray()) # test sparse vector v = SparseNDArray(v1, shape=(3, )) assertArrayEqual(v % v, v1_data % v1_data) assertArrayEqual(v % d1, v1_data % d1) assertArrayEqual(d1 % v, d1 % v1_data) r = sps.csr_matrix(((v1.data % 1), v1.indices, v1.indptr), v1.shape) assertArrayEqual(v % 1, r.toarray().reshape(3)) r = sps.csr_matrix(((1 % v1.data), v1.indices, v1.indptr), v1.shape) assertArrayEqual(1 % v, r.toarray().reshape(3))
def test_sparse_power(): s1 = SparseNDArray(s1_data) s2 = SparseNDArray(s2_data) assertArrayEqual(s1**s2, s1.toarray()**s2.toarray()) assertArrayEqual(s1**d1, s1.toarray()**d1) assertArrayEqual(d1**s1, d1**s1.toarray()) assertArrayEqual(s1**2, s1_data.power(2)) assertArrayEqual(2**s1, 2**s1.toarray()) # test sparse vector v = SparseNDArray(v1, shape=(3, )) assertArrayEqual(v**v, v1_data**v1_data) assertArrayEqual(v**d1, v1_data**d1) assertArrayEqual(d1**v, d1**v1_data) r = sps.csr_matrix(((v1.data**1), v1.indices, v1.indptr), v1.shape) assertArrayEqual(v**1, r.toarray().reshape(3)) r = sps.csr_matrix(((1**v1.data), v1.indices, v1.indptr), v1.shape) assertArrayEqual(1**v, r.toarray().reshape(3))
def test_sparse_floor_divide(): s1 = SparseNDArray(s1_data) s2 = SparseNDArray(s2_data) assertArrayEqual(s1 // s2, s1.toarray() // s2.toarray()) assertArrayEqual(s1 // d1, s1.toarray() // d1) assertArrayEqual(d1 // s1, d1 // s1.toarray()) assertArrayEqual(s1 // 2, s1.toarray() // 2) assertArrayEqual(2 // s1, 2 // s1.toarray()) # test sparse vector v = SparseNDArray(v1, shape=(3, )) assertArrayEqual(v // v, v1_data // v1_data) assertArrayEqual(v // d1, v1_data // d1) assertArrayEqual(d1 // v, d1 // v1_data) r = sps.csr_matrix(((v1.data // 1), v1.indices, v1.indptr), v1.shape) assertArrayEqual(v // 1, r.toarray().reshape(3)) r = sps.csr_matrix(((1 // v1.data), v1.indices, v1.indptr), v1.shape) assertArrayEqual(1 // v, r.toarray().reshape(3))
def testSparseSetitem(self): s1 = SparseNDArray(self.s1.copy()) s1[1:2, 1] = [2] ss1 = self.s1.tolil() ss1[1:2, 1] = [2] np.testing.assert_array_equal(s1.toarray(), ss1.toarray()) v1 = SparseVector(self.v1, shape=(3, )) v1[1:2] = [2] vv1 = self.v1_data vv1[1:2] = [2] np.testing.assert_array_equal(v1.toarray(), vv1)
def test_sparse_setitem(): s1 = SparseNDArray(s1_data.copy()) s1[1:2, 1] = [2] ss1 = s1_data.tolil() ss1[1:2, 1] = [2] np.testing.assert_array_equal(s1.toarray(), ss1.toarray()) v = SparseVector(v1, shape=(3, )) v[1:2] = [2] vv1 = v1_data.copy() vv1[1:2] = [2] np.testing.assert_array_equal(v.toarray(), vv1)
def test_sparse_bin(): s1 = SparseNDArray(s1_data) s2 = SparseNDArray(s2_data) v = SparseNDArray(v1, shape=(3, )) for method in ('fmod', 'logaddexp', 'logaddexp2', 'equal', 'not_equal', 'less', 'less_equal', 'greater', 'greater_equal', 'hypot', 'arctan2'): lm, rm = getattr(mls, method), getattr(np, method) assertArrayEqual(lm(s1, s2), rm(s1.toarray(), s2.toarray())) assertArrayEqual(lm(s1, d1), rm(s1.toarray(), d1)) assertArrayEqual(lm(d1, s1), rm(d1, s1.toarray())) r1 = sps.csr_matrix((rm(s1.data, 2), s1.indices, s1.indptr), s1.shape) assertArrayEqual(lm(s1, 2), r1) r2 = sps.csr_matrix((rm(2, s1.data), s1.indices, s1.indptr), s1.shape) assertArrayEqual(lm(2, s1), r2) # test sparse assertArrayEqual(lm(v, v), rm(v1_data, v1_data)) assertArrayEqual(lm(v, d1), rm(v1_data, d1)) assertArrayEqual(lm(d1, v), rm(d1, v1_data)) assertArrayEqual(lm(v, 2), rm(v1_data, 2)) assertArrayEqual(lm(2, v), rm(2, v1_data))
def testSparseSetitem(self): s1 = SparseNDArray(self.s1.copy()) s1[1:2, 1] = [2] ss1 = self.s1.tolil() ss1[1:2, 1] = [2] np.testing.assert_array_equal(s1.toarray(), ss1.toarray())
def testSparseFillDiagonal(self): s1 = sps.random(100, 11, density=0.3, format='csr', random_state=0) # fill scalar arr = SparseNDArray(s1) arr.fill_diagonal(3) expected = s1.copy().A np.fill_diagonal(expected, 3) np.testing.assert_array_equal(arr.toarray(), expected) # fill scalar, wrap=True arr = SparseNDArray(s1) arr.fill_diagonal(3, wrap=True) expected = s1.copy().A np.fill_diagonal(expected, 3, wrap=True) np.testing.assert_array_equal(arr.toarray(), expected) # fill list arr = SparseNDArray(s1) arr.fill_diagonal([1, 2, 3]) expected = s1.copy().A np.fill_diagonal(expected, [1, 2, 3]) np.testing.assert_array_equal(arr.toarray(), expected) # fill list, wrap=True arr = SparseNDArray(s1) arr.fill_diagonal([1, 2, 3], wrap=True) expected = s1.copy().A np.fill_diagonal(expected, [1, 2, 3], wrap=True) np.testing.assert_array_equal(arr.toarray(), expected) # fill long list val = np.random.RandomState(0).rand(101) arr = SparseNDArray(s1) arr.fill_diagonal(val) expected = s1.copy().A np.fill_diagonal(expected, val) np.testing.assert_array_equal(arr.toarray(), expected) # fill long list, wrap=True val = np.random.RandomState(0).rand(101) arr = SparseNDArray(s1) arr.fill_diagonal(val, wrap=True) expected = s1.copy().A np.fill_diagonal(expected, val, wrap=True) np.testing.assert_array_equal(arr.toarray(), expected) # fill ndarray val = np.random.RandomState(0).rand(3, 4) arr = SparseNDArray(s1) arr.fill_diagonal(val) expected = s1.copy().A np.fill_diagonal(expected, val) np.testing.assert_array_equal(arr.toarray(), expected) # fill ndarray, wrap=True val = np.random.RandomState(0).rand(3, 4) arr = SparseNDArray(s1) arr.fill_diagonal(val, wrap=True) expected = s1.copy().A np.fill_diagonal(expected, val, wrap=True) np.testing.assert_array_equal(arr.toarray(), expected)