我有以下陣列:擴大/縮放在numpy的陣列
import numpy as np
a = np.array([[2, 3, 5],
[4, 6, 7],
[1, 5, 7]])
我想將它擴展成數組:
b = [[2 2 2 3 3 3 5 5 5]
[2 2 2 3 3 3 5 5 5]
[2 2 2 3 3 3 5 5 5]
[4 4 4 6 6 6 7 7 7]
[4 4 4 6 6 6 7 7 7]
[4 4 4 6 6 6 7 7 7]
[1 1 1 5 5 5 7 7 7]
[1 1 1 5 5 5 7 7 7]
[1 1 1 5 5 5 7 7 7]]
所以我使用下面的命令:
import scipy.ndimage
b = scipy.ndimage.interpolation.zoom(a, 3, order=0)
根據這個問題和答案在這裏Resampling a numpy array representing an image。
然而,什麼我得到的是:
b = [[2 2 3 3 3 3 5 5 5]
[2 2 3 3 3 3 5 5 5]
[4 4 6 6 6 6 7 7 7]
[4 4 6 6 6 6 7 7 7]
[4 4 6 6 6 6 7 7 7]
[4 4 6 6 6 6 7 7 7]
[1 1 5 5 5 5 7 7 7]
[1 1 5 5 5 5 7 7 7]
[1 1 5 5 5 5 7 7 7]]
我想擴張正是通過3,或任何變焦倍數是要的,但目前它是陣列中的每個元素不同。
有沒有直接的方法來做到這一點?或者我應該手動進行一些編碼?
永不遲到!公平地說,這個答案比@MSeifert的答案更完整和更容易實現。這個答案完美適用於2D陣列,然而,我發現在我的3D陣列上應用它時遇到了困難。 關於您的答案的另一個好處是您可以分別確定每個維度上的展開值,並且這種情況下您不希望以相同的值向所有方向展開數組。 現在我肯定會說:這是答案。 – philippos
你可以指定或給出一個例子你的意思是「我發現在我的3D陣列上應用它有困難」? –