NumPy Ayırma Dizisi
NumPy Dizilerini Bölme
Bölme, Katılmanın ters işlemidir.
Birleştirme, birden çok diziyi tek bir dizide birleştirir ve Bölme, bir diziyi birden çok diziye böler.
Dizileri bölmek için kullanıyoruz array_split()
, bölmek istediğimiz diziyi ve bölme sayısını iletiyoruz.
Örnek
Diziyi 3 parçaya bölün:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
newarr =
np.array_split(arr, 3)
print(newarr)
Not: Dönüş değeri, üç dizi içeren bir dizidir.
Dizi gerekenden daha az elemana sahipse, sondan itibaren buna göre ayarlanacaktır.
Örnek
Diziyi 4 parçaya bölün:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
newarr =
np.array_split(arr, 4)
print(newarr)
Not: Ayrıca elimizde bir yöntem de var, split()
ancak yukarıdaki örnekte olduğu gibi bölme için kaynak dizideki öğeler daha az olduğunda öğeleri ayarlamaz, array_split()
düzgün çalışır ancak
split()
başarısız olur.
Dizilere Böl
Yöntemin dönüş değeri, array_split()
her bir bölmeyi bir dizi olarak içeren bir dizidir.
Bir diziyi 3 diziye bölerseniz, diziye herhangi bir dizi öğesi gibi sonuçtan erişebilirsiniz:
Örnek
Bölünmüş dizilere erişin:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
newarr =
np.array_split(arr, 3)
print(newarr[0])
print(newarr[1])
print(newarr[2])
2-B Dizileri Bölme
2 boyutlu dizileri bölerken aynı söz dizimini kullanın.
Yöntemi kullanın, array_split()
bölmek istediğiniz diziyi ve yapmak istediğiniz bölme sayısını girin.
Örnek
2 boyutlu diziyi üç 2 boyutlu diziye ayırın.
import numpy as np
arr = np.array([[1, 2], [3, 4], [5, 6], [7, 8], [9,
10], [11, 12]])
newarr = np.array_split(arr, 3)
print(newarr)
Yukarıdaki örnek, üç adet 2 boyutlu dizi döndürür.
Başka bir örneğe bakalım, bu sefer 2 boyutlu dizilerdeki her eleman 3 eleman içeriyor.
Örnek
2 boyutlu diziyi üç 2 boyutlu diziye ayırın.
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10,
11, 12], [13, 14, 15], [16, 17, 18]])
newarr = np.array_split(arr, 3)
print(newarr)
Yukarıdaki örnek, üç adet 2 boyutlu dizi döndürür.
Ek olarak, bölmeyi hangi eksende yapmak istediğinizi belirleyebilirsiniz.
Aşağıdaki örnek ayrıca üç adet 2 boyutlu dizi döndürür, ancak bunlar satır boyunca bölünmüştür (eksen=1).
Örnek
2 boyutlu diziyi satırlar boyunca üç adet 2 boyutlu diziye bölün.
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10,
11, 12], [13, 14, 15], [16, 17, 18]])
newarr = np.array_split(arr, 3, axis=1)
print(newarr)
Alternatif bir çözüm, hsplit()
tersini
kullanmaktır.hstack()
Örnek
hsplit()
2B diziyi satırlar boyunca üç adet 2B diziye bölmek için yöntemi kullanın .
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9],
[10, 11, 12], [13, 14, 15], [16, 17, 18]])
newarr = np.hsplit(arr, 3)
print(newarr)
Not: ve ile benzer alternatifler vstack()
ve
dstack()
olarak
vsplit()
mevcuttur
dsplit()
.