NumPy Dizi Yeniden Şekillendirme

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)

Çalıştırma Örneği

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)

Çalıştırma Örneği

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)

Çalıştırma Örneği

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)

Çalıştırma Örneği

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)

Çalıştırma Örneği

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)

Çalıştırma Örneği

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.