<p>我终于解决了我的问题,想总结一下。
我的数据有点像</p>
<pre><code>[
[(1.008,0.177),(1.035,0.511),...,(3.221,0.472)],
[(0.332,0.122),(1.023,0.115),...,(3.323,0.427)],
...,
[(0.212,0.141),(1.023,0.115),...,(3.892,0.918)],
]
</code></pre>
<p>我不知道如何用英语描述这种数据,但它本质上是一个列表,其元素是列表中的元组。它是一维的,但是我想用这个数据作为二维矩阵,把它分成块,就像我在问题中描述的那样。你知道吗</p>
<p>我只是在1D列表中找到每个块的索引并将其切片。你知道吗</p>
<pre><code>Data = [ [(), (), ...], [(), (), ...], ... ]
# Calculate block start index(Upper left).
rows = int(matrix_size / block_size)
columns = int(matrix_size / block_size)
index_0s = []
for row in range(rows):
for column in range(columns):
index_0s.append(row * matrix_size * block_size + column * block_size)
def generate_block(block_start_index):
indices = []
for i in range(block_size):
for j in range(block_size):
index_ij = matrix_size * i + block_start_index + j
indices.append(index_ij)
block = []
for block_index in indices:
block.append(Data[block_index])
return block
# Generate all blocks.
blocks = []
for index_0 in index_0s:
block_i = generate_block(index_0)
blocks.append(block_i)
</code></pre>