NumPy Dizisini Yeniden Şekillendirme
Dizileri yeniden şekillendirme
Yeniden şekillendirme, bir dizinin şeklini değiştirmek anlamına gelir.
Bir dizinin şekli, her boyuttaki eleman sayısıdır.
Yeniden şekillendirerek boyut ekleyebilir veya kaldırabilir veya her boyuttaki eleman sayısını değiştirebiliriz.
1-D'den 2-D'ye Yeniden Şekillendirin
Örnek
Aşağıdaki 12 elemanlı 1 boyutlu diziyi 2 boyutlu diziye dönüştürün.
En dıştaki boyut, her biri 3 elemanlı 4 diziye sahip olacaktır:
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 Yeniden Şekillendirin
Örnek
Aşağıdaki 1 boyutlu diziyi 12 elemanlı bir 3 boyutlu diziye dönüştürün.
En dıştaki boyut, her biri 2 elemanlı 3 dizi içeren 2 diziye sahip olacaktır:
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 Şekilde Yeniden Şekillendirebilir miyiz?
Evet, yeniden şekillendirme için gerekli elemanlar her iki şekilde de eşit olduğu sürece.
8 elemanlı 1B diziyi 2 sıra 2B dizide 4 elemana yeniden şekillendirebiliriz, ancak 3x3 = 9 eleman gerektireceğinden onu 3 elemanlı 3 satır 2B diziye yeniden şekillendiremeyiz.
Örnek
8 elemanlı 1B diziyi, her boyutta 3 elemanlı 2B diziye dönüştürmeyi deneyin (bir hataya neden olur):
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
newarr = arr.reshape(3, 3)
print(newarr)
Kopyalama mı Görüntüleme mi?
Örnek
Döndürülen dizinin bir kopya mı yoksa bir 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ürür, yani bir görünümdür.
Bilinmeyen Boyut
Bir "bilinmeyen" boyuta sahip olmanıza izin verilir.
Bu, yeniden şekillendirme yönteminde boyutlardan biri için kesin bir sayı belirtmeniz gerekmediği anlamına gelir.
Değer olarak iletin -1
, NumPy bu sayıyı sizin için hesaplayacaktır.
Örnek
8 elemanlı 1B diziyi 2x2 elemanlı 3B diziye 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)
Not:-1
Birden fazla boyuta geçemeyiz .
Dizileri düzleştirme
Düzleştirme dizisi, çok boyutlu bir diziyi 1B diziye dönüştürmek anlamına gelir.
Bunu yapmak için kullanabiliriz reshape(-1)
.
Örnek
Diziyi 1B diziye dönüştürün:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
newarr
= arr.reshape(-1)
print(newarr)
Not: numpy içindeki dizilerin şekillerini değiştirmek ve ayrıca , , , vb. öğelerini yeniden düzenlemek için birçok işlev vardır flatten
. Bunlar , numpy'nin ravel
Orta Düzeyden Gelişmiş bölümüne girer.rot90
flip
fliplr
flipud