0
我有大量的數組與維72,x其中x小於144.我想採取這些數組,並對他們做兩件事:Numpy數組 - 複製行和居中列在一個更大的數組
複製原始中的每一行,使其中有144個。
中心陣列水平地較大144
最終結果內部是144x144陣列。我想使用numpy並儘可能避免循環(我已經可以在循環中實現這一點)。我已經四處搜尋,但還沒有找到一個簡潔的解決方案。
感謝,
我有大量的數組與維72,x其中x小於144.我想採取這些數組,並對他們做兩件事:Numpy數組 - 複製行和居中列在一個更大的數組
複製原始中的每一行,使其中有144個。
中心陣列水平地較大144
最終結果內部是144x144陣列。我想使用numpy並儘可能避免循環(我已經可以在循環中實現這一點)。我已經四處搜尋,但還沒有找到一個簡潔的解決方案。
感謝,
讓我們小例子:
import numpy as np
a = np.array([[1, 2],
[3, 4]])
b = np.zeros((4,4))
b[:,1:-1] = np.repeat(a, 2, axis=0)
# returns:
array([[ 0., 1., 2., 0.],
[ 0., 1., 2., 0.],
[ 0., 3., 4., 0.],
[ 0., 3., 4., 0.]])
因此,對於您的情況:
a = np.arange(5184).reshape(72,72)
b = np.zeros((144,144))
b[36:-36,:] = np.repeat(a, int(144/a.shape[0]) + 1, axis=1)[:,:144]
我真的很感激這段代碼,遺憾的是在其最終形式,它是一點點對我來說太晦澀難懂了。出於這個原因,我決定將矩陣寫成圖像,然後使用ImageMagick: 'for * in * .png; do mogrify -geometry $(file $ f | cut -f2 -d,| cut -f1 -dx | tr -d「」)x144! -background black -extent 144x144 -gravity center $ f; done' – Brian 2011-04-21 22:05:40