我想將二維陣列 x * y 拆分成一些較小的二維陣列,這些陣列是 N * N 重疊的,并將這些較小的陣列作為值存盤在字典中,鍵將是較大陣列中左上角專案的索引。
從
[[1,2,3,4],
[5,6,7,8],
[9,10,11,12]]
至
{(0,0):[[1,2],[5,6]], (0,1):[[2,3],[6,7]], (0,2):[[3,4],[7,8]], (1,0):[[5,6],[9,10]], (1,1):[[6,7],[10,11]], (1,2):[[7,8],[11,12]]}
我有使用 numpy 將它分成更小的陣列而不重疊的想法,但我不知道這種情況。
如何才能做到這一點?滿滿的感謝!
uj5u.com熱心網友回復:
你要做的操作是滑動視窗。
import numpy as np
A = np.array([
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]
])
result = dict(zip(
[(i, j) for i in range(2) for j in range(3)],
np.lib.stride_tricks.sliding_window_view(A, (2, 2)).reshape(-1, 2, 2).tolist()
))
# {(0, 0): [[1, 2], [5, 6]], (0, 1): [[2, 3], [6, 7]], (0, 2): [[3, 4], [7, 8]], (1, 0): [[5, 6], [9, 10]], (1, 1): [[6, 7], [10, 11]], (1, 2): [[7, 8], [11, 12]]}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/537279.html
標籤:Python数组麻木的
上一篇:洗掉 和獲得有效的XML?
