Yeni şekli sağlamak için yerine getirilmesi gereken kriter 'Yeni şekil orijinal şekliyle uyumlu olmalıdır'
numpy yeni şekil parametrelerinden birini -1 olarak vermemize izin verir (örneğin: (2, -1) veya (-1,3) ama (-1, -1) değil). Bu sadece bilinmeyen bir boyut olduğu anlamına gelir ve numpy'nin bunu çözmesini istiyoruz. Ve numpy bunu 'dizinin uzunluğuna ve kalan boyutlara' bakarak ve yukarıda belirtilen kriterleri karşıladığından emin olarak anlayacaktır.
Şimdi örneğe bakın.
z = np.array([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]])
z.shape
(3, 4)
Şimdi (-1) ile yeniden şekillendirmeye çalışıyorum. Sonuç yeni şekil (12,) ve orijinal şekil (3,4) ile uyumlu
z.reshape(-1)
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])
Şimdi (-1, 1) ile yeniden şekillendirmeye çalışıyorum. Sütunu 1, satırları bilinmiyor olarak sağladık. Böylece sonuç olarak yeni şekli elde ediyoruz (12, 1). Orijinal şekliyle uyumlu hale getirin (3,4)
z.reshape(-1,1)
array([[ 1],
[ 2],
[ 3],
[ 4],
[ 5],
[ 6],
[ 7],
[ 8],
[ 9],
[10],
[11],
[12]])
Yukarıdakiler tek bir özellik numpy
için kullanmak reshape(-1,1)
üzere tavsiye / hata mesajı ile tutarlıdır ; yani tek sütun
Verileriniz tek bir özelliğearray.reshape(-1, 1)
sahipse verilerinizi yeniden şekillendirme
(-1, 2) olarak yeni şekil. satır bilinmiyor, 2. sütun. (6, 2)
z.reshape(-1, 2)
array([[ 1, 2],
[ 3, 4],
[ 5, 6],
[ 7, 8],
[ 9, 10],
[11, 12]])
Şimdi sütunu bilinmeyen tutmaya çalışıyor. (1, -1) şeklinde yeni şekil. yani satır 1, sütun bilinmiyor. sonuç olarak yeni bir şekil alırız (1, 12)
z.reshape(1,-1)
array([[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]])
Yukarıdakiler tek bir örnek numpy
için kullanılacak tavsiye / hata mesajı ile tutarlıdır reshape(1,-1)
; yani tek sıra
Tek bir örnekarray.reshape(1, -1)
içeriyorsa verilerinizi yeniden şekillendirin
Yeni şekil (2, -1). Satır 2, sütun bilinmiyor. sonuç olarak yeni bir şekil alırız (2,6)
z.reshape(2, -1)
array([[ 1, 2, 3, 4, 5, 6],
[ 7, 8, 9, 10, 11, 12]])
(3, -1) şeklinde yeni şekil. Satır 3, sütun bilinmiyor. sonuç olarak yeni bir şekil alırız (3,4)
z.reshape(3, -1)
array([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12]])
Ve son olarak, eğer her iki boyutu da bilinmeyen olarak sağlamaya çalışırsak, yani yeni şekil (-1, -1) olarak. Bir hata atacak
z.reshape(-1, -1)
ValueError: can only specify one unknown dimension
reshape
, aynı sayıda elemanı korumak için verilen boyutların çarpımına bölünür .