【发布时间】:2019-04-02 20:49:39
【问题描述】:
我有一行代码可以有效地将一个 numpy 数组从 400x8x8 数组重塑为 160x160 数组,我需要反转该过程,但无法弄清楚该行的反转。
我已经可以执行此过程,但效率非常低,并且需要嵌套循环,出于性能目的,我希望避免使用。
这是我目前必须反转该过程的代码(160x160 > 400x8x8):
previousRow = 0
for rowBlock in range(noBlocksOn1Axis):
previousRow = rowBlock * blockSize
previousColumn = 0
for columnBlock in range(noBlocksOn1Axis):
previousColumn = columnBlock * blockSize
block =
arrayY[previousRow:previousRow+blockSize,
previousColumn:previousColumn + blockSize]
blocksList.append(block)
这是重塑 400x8x8 > 160x160 的代码行:
xy = np.zeros((160,160), dtype = np.uint8)
xy = np.vstack(np.hstack(overDone[20*i:20+20*i]) for i in
range(overDone.shape[0]//20))
那么关于如何反向执行这行代码有什么想法吗?
谢谢:D
【问题讨论】:
标签: python arrays numpy vectorization reshape