コード例 #1
0
    def test_for_matrix_smaller_than_block_size(self):
        a = np.array([[20], [10]])

        res = split_into_blocks(a, block_size=3)

        expected = [[20, 20, 20], [10, 10, 10], [10, 10, 10]]
        self.assertEqual(res.shape, (1, 1, 3, 3))
        self.assertEqual(res[0, 0].tolist(), expected)
コード例 #2
0
    def blocks(self, a, block_size):
        blocks = split_into_blocks(a, block_size)

        h = a.shape[0] // block_size
        w = a.shape[1] // block_size

        for y in range(0, h):
            for x in range(w):
                yield blocks[y, x], y, x
コード例 #3
0
    def test_with_nice_matrix(self):
        a = np.arange(16).reshape((4, 4))

        blocks = split_into_blocks(a, block_size=2)
        self.assertEqual(blocks.shape, (2, 2, 2, 2))

        self.assertEqual(blocks[0, 0].ravel().tolist(), [0, 1, 4, 5])
        self.assertEqual(blocks[0, 1].ravel().tolist(), [2, 3, 6, 7])
        self.assertEqual(blocks[1, 0].ravel().tolist(), [8, 9, 12, 13])
        self.assertEqual(blocks[1, 1].ravel().tolist(), [10, 11, 14, 15])
コード例 #4
0
 def f():
     a = np.array([[]])
     res = split_into_blocks(a, block_size=3)
コード例 #5
0
 def f():
     split_into_blocks(np.array([[[32]]]), block_size=2)
コード例 #6
0
 def f():
     split_into_blocks(np.array([32, 31]), block_size=2)
コード例 #7
0
 def test_with_complex_matrix(self):
     a = np.array([[3 - 2j]])
     blocks = split_into_blocks(a, block_size=1)
     self.assertEqual(blocks[0, 0].ravel().tolist(), [3 - 2j])
コード例 #8
0
 def execute(self, array):
     blocks_matrix = split_into_blocks(array, self._config.block_size)
     return np.mean(blocks_matrix, axis=(2, 3))