Bu yeniden biçimlendirme sorusu daha önce ortaya çıktı.
In [473]: x=np.arange(20).reshape(2,10)
In [474]: x
Out[474]:
array([[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14, 15, 16, 17, 18, 19]])
Kullanım yeniden şekillendirme boyutlarını yeniden düzenlemek için devrik 5
In [475]: x.reshape(2,2,5)
Out[475]:
array([[[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9]],
[[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19]]])
ait bloklara bölmek ve kullanımı: Ama daha ziyade aramasından daha çabuk senin numune dizisi yapmak bir numpy yaklaşım
sergilmektedirler edeceğiz ve geçerli satırları
In [476]: x.reshape(2,2,5).transpose(1,0,2)
Out[476]:
array([[[ 0, 1, 2, 3, 4],
[10, 11, 12, 13, 14]],
[[ 5, 6, 7, 8, 9],
[15, 16, 17, 18, 19]]])
ve dezavantajları bir başka şekli yeniden sıralama Bu devrik 1 2 boyutlara
In [477]: x.reshape(2,2,5).transpose(1,0,2).reshape(4,5)
Out[477]:
array([[ 0, 1, 2, 3, 4],
[10, 11, 12, 13, 14],
[ 5, 6, 7, 8, 9],
[15, 16, 17, 18, 19]])
x
zaten numpy dizisi ise, olidate ve yeniden şekillendirmek operasyonlar ucuz (zaman bilge) bulunmaktadır. Eğer x
gerçekten yuvalanmış listeler olsaydı, o zaman bir numpy dizisi ek yükü vardır, çünkü liste işlemleri ile diğer çözüm daha hızlı olacaktır.
'43264 = 208 * 208'den bu yana dizinizi 26 * 208 * 208'lik bir şekle yeniden biçimlendirebilirsiniz, ancak '208 * 208 * 26 * 26' – toine
sadece np.reshape (liste) , (4,5)) '? – SirParselot
Sadece np.reshape işlevi (liste, (4,5)), verileri yanlış şekilde bölümlendirdiği için çalışmaz. – Chidwack