Numpy.reshape() işlevi NumPy paketinde mevcuttur. Adından da anlaşılacağı gibi yeniden şekillendirme 'şekil değişikliği' anlamına gelir. Numpy.reshape() işlevi, bir dizinin verilerini değiştirmeden yeni bir şekil almamıza yardımcı olur.
Bazen verileri genişten uzuna doğru yeniden şekillendirmemiz gerekiyor. Dolayısıyla bu durumda reshape() fonksiyonunu kullanarak diziyi yeniden şekillendirmemiz gerekir.
Sözdizimi
numpy.reshape(arr, new_shape, order='C')
Parametreler
reshape() fonksiyonunun aşağıdaki parametreleri vardır:
1) dizi: dizi_benzeri
Bu bir ndarray. Bu yeniden şekillendirmek istediğimiz kaynak dizisidir. Bu parametre önemlidir ve numpy.reshape() işlevinde hayati bir rol oynar.
iş parçacığı.destroy
2) new_shape: int veya int'lerin tuple'ı
Orijinal dizimizi dönüştürmek istediğimiz şeklin orijinal diziyle uyumlu olması gerekir. Bir tam sayı ise sonuç, bu uzunlukta 1 boyutlu bir dizi olacaktır. Bir şekil boyutu -1 olabilir. Burada değer, dizinin uzunluğu ve kalan boyutlara göre yaklaşık olarak hesaplanır.
3) sıra: {'C', 'F', 'A'}, isteğe bağlı
Bu indekslerin sıra parametresi reshape() fonksiyonunda çok önemli bir rol oynar. Bu indeks sıraları, kaynak dizinin elemanlarını okumak ve elemanları bu indeks sırasını kullanarak yeniden şekillendirilmiş diziye yerleştirmek için kullanılır.
- 'C' indeks sırası, son eksen indeksinin en hızlı değiştiği, en yavaş değişen ilk eksen indeksine geri döndüğü C benzeri indeks sırası kullanan elemanları okumak/yazmak anlamına gelir.
- 'F' indeks sırası, son eksen indeksinin en yavaş değiştiği ve ilk eksen indeksinin en hızlı değiştiği Fortran benzeri indeks sırasını kullanan elemanları okumak/yazmak anlamına gelir.
- 'C' ve 'F' sırası, temel dizinin bellek düzeninin hiçbir miktarını almaz ve yalnızca indeksleme sırasına atıfta bulunur.
- Dizin sırası 'A', arr bellekte bitişik olduğunda öğeleri Fortran benzeri dizin sırasında okumak/yazmak anlamına gelir, aksi takdirde C benzeri sırayı kullanın.
İadeler
Bu işlev bir ndarray döndürür. Mümkünse yeni bir görünüm nesnesidir; aksi takdirde bir kopya olacaktır. Döndürülen dizinin bellek düzeninin garantisi yoktur.
Örnek 1: C benzeri dizin sıralaması
import numpy as np x=np.arange(12) y=np.reshape(x, (4,3)) x y
Çıktı:
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]])
Yukarıdaki kodda
- Numpy'yi np takma adıyla içe aktardık.
- Np.arrange() fonksiyonunu kullanarak bir 'a' dizisi oluşturduk.
- 'y' değişkenini bildirdik ve np.reshape() fonksiyonunun döndürülen değerini atadık.
- 'x' dizisini ve şeklini fonksiyona aktardık.
- Son olarak arr değerini yazdırmaya çalıştık.
Çıktıda dizi üç satır ve dört sütun olarak temsil edilmiştir.
Örnek 2: C ravel sonra C yeniden şekillendirmeye eşdeğer
import numpy as np x=np.arange(12) y=np.reshape(np.ravel(x),(3,4)) x y
Ravel() fonksiyonu bitişik düzleştirilmiş bir dizi oluşturmak için kullanılır. Girişin elemanlarını içeren tek boyutlu bir dizi döndürülür. Bir kopya yalnızca ihtiyaç duyulduğunda yapılır.
Java yöntemlerinde dize
Çıktı:
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]])
Örnek 3: Fortran benzeri dizin sıralaması
import numpy as np x=np.arange(12) y=np.reshape(x, (4, 3), order='F') x y
Çıktı:
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 4, 8], [ 1, 5, 9], [ 2, 6, 10], [ 3, 7, 11]])
Yukarıdaki kodda
- Numpy'yi np takma adıyla içe aktardık.
- Np.arrange() fonksiyonunu kullanarak bir 'a' dizisi oluşturduk.
- 'y' değişkenini bildirdik ve np.reshape() fonksiyonunun döndürdüğü değeri atadık.
- Fonksiyonda 'x' dizisini, şeklini ve Fortran benzeri indeks sırasını geçtik.
- Son olarak arr değerini yazdırmaya çalıştık.
Çıktıda dizi dört satır ve üç sütun olarak temsil edilmiştir.
Örnek 4: Fortran benzeri dizin sıralaması
import numpy as np x=np.arange(12) y=np.reshape(np.ravel(x, order='F'), (4, 3), order='F') x y
Çıktı:
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 4, 8], [ 1, 5, 9], [ 2, 6, 10], [ 3, 7, 11]])
Örnek 5: Belirtilmeyen değerin 2 olduğu sonucuna varılır
import numpy as np x=np.arange(12) y=np.reshape(x, (2, -1)) x y
Yukarıdaki kodda
- Numpy'yi np takma adıyla içe aktardık.
- Np.arrange() fonksiyonunu kullanarak bir 'a' dizisi oluşturduk.
- 'y' değişkenini bildirdik ve np.reshape() fonksiyonunun döndürülen değerini atadık.
- 'x' dizisini ve şeklini (belirtilmemiş değer) fonksiyona aktardık.
- Son olarak arr değerini yazdırmaya çalıştık.
Çıktıda dizi iki satır ve beş sütun olarak temsil edilmiştir.
Çıktı:
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 1, 2, 3, 4, 5], [ 6, 7, 8, 9, 10, 11]])