NumPy Dizi Yeniden Şekillendirme
- Önceki Sayfa NumPy Dizi Şekli
- Sonraki Sayfa NumPy Dizi İtibarı
Dizi yeniden şekillendirme
Yeniden şekillendirme, dizinin şeklini değiştirmektir.
Dizinin şekli her boyutta eleman sayısını belirtir.
Yeniden şekillendirme ile boyutları ekleyebilir veya kaldırabilir ve her boyutta eleman sayısını değiştirebiliriz.
1-D'den 2-D'ye dönüştürme
Örnek
Aşağıdaki 12 elemanlı 1-D dizini 2-D dizine dönüştürün.
En dıştaki boyut 4 adet dizine sahip olacak ve her biri 3 elemana sahip olacak:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]) newarr = arr.reshape(4, 3) print(newarr)
1-D'den 3-D'ye dönüştürme
Örnek
Aşağıdaki 12 elemanlı 1-D dizini 3-D dizine dönüştürün.
En dıştaki boyut 2 adet dizine sahip olacak ve her biri 3 dizine sahip olacak, her dizide 2 eleman bulunacak:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]) newarr = arr.reshape(2, 3, 2) print(newarr)
Herhangi bir şekile dönüştürebilir miyiz?
Evet, iki şekilde de gerekli olan elemanlar eşitse.
8 elemanlı 1D dizini 2 satırlı 2D dizideki 4 elemana dönüştürebiliriz, ancak 3 elemanlı 3 satırlı 2D dizine dönüştüremeziz çünkü bu 3x3 = 9 eleman gerektirir.
Örnek
8 elemanlı 1D dizini, her boyutta 3 eleman içeren 2D dizine dönüştirmeye çalışın (hata olacaktır):
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8]) newarr = arr.reshape(3, 3) print(newarr)
Kopya mı yoksa görünüm mü döndür?
Örnek
Geri dönen dizin kopya mı yoksa görünüm mü olduğunu kontrol edin:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8]) print(arr.reshape(2, 4).base)
Yukarıdaki örnek, orijinal diziyi döndürdüğünden bu nedenle bir görünümüdür.
Bilinmeyen Boyut
Bir 'bilinmeyen' boyut kullanabilirsiniz.
Bu, reshape yönteminde bir boyut için kesin bir numara belirtmenize gerek olmadığı anlamına gelir.
Gönder -1
NumPy, bu sayıyı sizin için hesaplayacaktır.
Örnek
8 elemanlı 1D diziyi 2x2 elemanlı 3D dizisine dönüştürün:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8]) newarr = arr.reshape(2, 2, -1) print(newarr)
Açıklama:Dönüştüremeziz -1
Birden fazla boyuta gönderilir.
Dizileri Düzleştirme
Dizileri düzleştirmek (Flattening the arrays), çok boyutlu dizileri 1D dizilere dönüştürmektir.
Kullanabiliriz reshape(-1)
Bu işi yapmak için.
Örnek
Diziyi 1D dizeye dönüştür:
import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) newarr = arr.reshape(-1) print(newarr)
Açıklama:Numpy flatten, ravel'de数组 şeklini değiştirmek ve rot90, flip, fliplr, flipud gibi elementleri yeniden düzenlemek gibi birçok fonksiyon vardır. Bu fonksiyonlar numpy'nin orta ila üst düzey bölümlerine aittir.
- Önceki Sayfa NumPy Dizi Şekli
- Sonraki Sayfa NumPy Dizi İtibarı