Example #1
0
    def testTransposeExecution(self):
        raw = np.random.random((11, 8, 5))
        arr = tensor(raw, chunk_size=3)
        arr2 = transpose(arr)

        res = self.executor.execute_tensor(arr2, concat=True)

        np.testing.assert_array_equal(res[0], raw.T)

        arr3 = transpose(arr, axes=(-2, -1, -3))

        res = self.executor.execute_tensor(arr3, concat=True)

        np.testing.assert_array_equal(res[0], raw.transpose(1, 2, 0))

        raw = sps.random(11, 8)
        arr = tensor(raw, chunk_size=3)
        arr2 = transpose(arr)

        self.assertTrue(arr2.issparse())

        res = self.executor.execute_tensor(arr2, concat=True)

        np.testing.assert_array_equal(res[0].toarray(), raw.T.toarray())

        # test order
        raw = np.asfortranarray(np.random.random((11, 8, 5)))

        arr = tensor(raw, chunk_size=3)
        arr2 = transpose(arr)

        res = self.executor.execute_tensor(arr2, concat=True)[0]
        expected = np.transpose(raw).copy(order='A')

        np.testing.assert_array_equal(res, expected)
        self.assertEqual(res.flags['C_CONTIGUOUS'],
                         expected.flags['C_CONTIGUOUS'])
        self.assertEqual(res.flags['F_CONTIGUOUS'],
                         expected.flags['F_CONTIGUOUS'])

        arr = tensor(raw, chunk_size=3)
        arr2 = transpose(arr, (1, 2, 0))

        res = self.executor.execute_tensor(arr2, concat=True)[0]
        expected = np.transpose(raw, (1, 2, 0)).copy(order='A')

        np.testing.assert_array_equal(res, expected)
        self.assertEqual(res.flags['C_CONTIGUOUS'],
                         expected.flags['C_CONTIGUOUS'])
        self.assertEqual(res.flags['F_CONTIGUOUS'],
                         expected.flags['F_CONTIGUOUS'])
Example #2
0
def test_create_view():
    arr = ones((10, 20, 30), chunk_size=[4, 3, 5])
    arr2 = transpose(arr)
    assert arr2.op.create_view is True

    arr3 = transpose(arr)
    assert arr3.op.create_view is True

    arr4 = arr.swapaxes(0, 1)
    assert arr4.op.create_view is True

    arr5 = moveaxis(arr, 1, 0)
    assert arr5.op.create_view is True

    arr6 = atleast_1d(1)
    assert arr6.op.create_view is True

    arr7 = atleast_2d([1, 1])
    assert arr7.op.create_view is True

    arr8 = atleast_3d([1, 1])
    assert arr8.op.create_view is True

    arr9 = arr[:3, [1, 2, 3]]
    # no view cuz of fancy indexing
    assert arr9.op.create_view is False

    arr9[0][0][0] = 100
    assert arr9.op.create_view is False

    arr10 = arr[:3, None, :5]
    assert arr10.op.create_view is True

    arr10[0][0][0] = 100
    assert arr10.op.create_view is False

    data = np.array([[[0], [1], [2]]])
    x = tensor(data)

    t = squeeze(x)
    assert t.op.create_view is True

    y = x.reshape(3)
    assert y.op.create_view is True
Example #3
0
    def testCreateView(self):
        arr = ones((10, 20, 30), chunk_size=[4, 3, 5])
        arr2 = transpose(arr)
        self.assertTrue(arr2.op.create_view)

        arr3 = transpose(arr)
        self.assertTrue(arr3.op.create_view)

        arr4 = arr.swapaxes(0, 1)
        self.assertTrue(arr4.op.create_view)

        arr5 = moveaxis(arr, 1, 0)
        self.assertTrue(arr5.op.create_view)

        arr6 = atleast_1d(1)
        self.assertTrue(arr6.op.create_view)

        arr7 = atleast_2d([1, 1])
        self.assertTrue(arr7.op.create_view)

        arr8 = atleast_3d([1, 1])
        self.assertTrue(arr8.op.create_view)

        arr9 = arr[:3, [1, 2, 3]]
        # no view cuz of fancy indexing
        self.assertFalse(arr9.op.create_view)

        arr9[0][0][0] = 100
        self.assertFalse(arr9.op.create_view)

        arr10 = arr[:3, None, :5]
        self.assertTrue(arr10.op.create_view)

        arr10[0][0][0] = 100
        self.assertFalse(arr10.op.create_view)

        data = np.array([[[0], [1], [2]]])
        x = tensor(data)

        t = squeeze(x)
        self.assertTrue(t.op.create_view)

        y = x.reshape(3)
        self.assertTrue(y.op.create_view)
Example #4
0
def test_transpose():
    arr = ones((10, 20, 30), chunk_size=[4, 3, 5])

    arr2 = transpose(arr)
    arr2 = tile(arr2)

    assert arr2.shape == (30, 20, 10)
    assert len(arr2.chunks) == 126
    assert arr2.chunks[0].shape == (5, 3, 4)
    assert arr2.chunks[-1].shape == (5, 2, 2)

    with pytest.raises(ValueError):
        transpose(arr, axes=(1, 0))

    arr3 = transpose(arr, (-2, 2, 0))
    arr3 = tile(arr3)

    assert arr3.shape == (20, 30, 10)
    assert len(arr3.chunks) == 126
    assert arr3.chunks[0].shape == (3, 5, 4)
    assert arr3.chunks[-1].shape == (2, 5, 2)

    arr4 = arr.transpose(-2, 2, 0)
    arr4 = tile(arr4)

    assert arr4.shape == (20, 30, 10)
    assert len(arr4.chunks) == 126
    assert arr4.chunks[0].shape == (3, 5, 4)
    assert arr4.chunks[-1].shape == (2, 5, 2)

    arr5 = arr.T
    arr5 = tile(arr5)

    assert arr5.shape == (30, 20, 10)
    assert len(arr5.chunks) == 126
    assert arr5.chunks[0].shape == (5, 3, 4)
    assert arr5.chunks[-1].shape == (5, 2, 2)
Example #5
0
    def testTranspose(self):
        arr = ones((10, 20, 30), chunk_size=[4, 3, 5])

        arr2 = transpose(arr)
        arr2 = arr2.tiles()

        self.assertEqual(arr2.shape, (30, 20, 10))
        self.assertEqual(len(arr2.chunks), 126)
        self.assertEqual(arr2.chunks[0].shape, (5, 3, 4))
        self.assertEqual(arr2.chunks[-1].shape, (5, 2, 2))

        with self.assertRaises(ValueError):
            transpose(arr, axes=(1, 0))

        arr3 = transpose(arr, (-2, 2, 0))
        arr3 = arr3.tiles()

        self.assertEqual(arr3.shape, (20, 30, 10))
        self.assertEqual(len(arr3.chunks), 126)
        self.assertEqual(arr3.chunks[0].shape, (3, 5, 4))
        self.assertEqual(arr3.chunks[-1].shape, (2, 5, 2))

        arr4 = arr.transpose(-2, 2, 0)
        arr4 = arr4.tiles()

        self.assertEqual(arr4.shape, (20, 30, 10))
        self.assertEqual(len(arr4.chunks), 126)
        self.assertEqual(arr4.chunks[0].shape, (3, 5, 4))
        self.assertEqual(arr4.chunks[-1].shape, (2, 5, 2))

        arr5 = arr.T
        arr5 = arr5.tiles()

        self.assertEqual(arr5.shape, (30, 20, 10))
        self.assertEqual(len(arr5.chunks), 126)
        self.assertEqual(arr5.chunks[0].shape, (5, 3, 4))
        self.assertEqual(arr5.chunks[-1].shape, (5, 2, 2))
Example #6
0
    def testTransposeExecution(self):
        raw = np.random.random((11, 8, 5))
        arr = tensor(raw, chunk_size=3)
        arr2 = transpose(arr)

        res = self.executor.execute_tensor(arr2, concat=True)

        self.assertTrue(np.array_equal(res[0], raw.T))

        arr3 = transpose(arr, axes=(-2, -1, -3))

        res = self.executor.execute_tensor(arr3, concat=True)

        self.assertTrue(np.array_equal(res[0], raw.transpose(1, 2, 0)))

        raw = sps.random(11, 8)
        arr = tensor(raw, chunk_size=3)
        arr2 = transpose(arr)

        self.assertTrue(arr2.issparse())

        res = self.executor.execute_tensor(arr2, concat=True)

        self.assertTrue(np.array_equal(res[0].toarray(), raw.T.toarray()))