Exemple #1
0
    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)
Exemple #2
0
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)
Exemple #3
0
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))
Exemple #4
0
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))
Exemple #5
0
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))
Exemple #6
0
    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)
Exemple #7
0
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)
Exemple #8
0
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))
Exemple #9
0
 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())
Exemple #10
0
    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)