Przekształcanie tablic w NumPy
- Poprzednia strona Kształt tablic w NumPy
- Następna strona Iteracja tablic w NumPy
Przekształcanie tablic
Przekształcanie oznacza zmianę kształtu tablicy.
Kształt tablicy to liczba elementów w każdym wymiarze.
Przekształcanie pozwala na dodawanie lub usuwanie wymiarów oraz zmianę liczby elementów w każdym wymiarze.
Z 1-wymiarowej tablicy do 2-wymiarowej
Przykład
Przekształć poniższą 1-wymiarową tablicę z 12 elementami w 2-wymiarową tablicę.
Najbardziej zewnętrzny wymiar będzie miał 4 tablice, każda z nich zawiera 3 elementy:
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)
Z 1-wymiarowej tablicy do 3-wymiarowej
Przykład
Przekształć poniższą 1-wymiarową tablicę z 12 elementami w 3-wymiarową tablicę.
Najbardziej zewnętrzna wymiar będzie miał 2 tablice, każda z nich zawiera 3 tablice, każda z nich zawiera 2 elementy:
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)
Czy możemy przekształcić w każdą kształt?
Tak, o ile liczba elementów wymaganych do przekształcenia jest taka sama w obu kształtach.
Możemy przekształcić 8-elementową 1-wymiarową tablicę w 2-wymiarową tablicę 2x2 z 4 elementami, ale nie możemy przekształcić jej w 3-elementową tablicę 3x3, ponieważ będzie to wymagało 3x3 = 9 elementów.
Przykład
Próbuj przekształcić 1-wymiarową tablicę z 8 elementami w 2-wymiarową tablicę 2x2 z 4 elementami (wywoła błąd):
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8]) newarr = arr.reshape(3, 3) print(newarr)
Zwrócić kopię czy widok?
Przykład
Sprawdź, czy zwrócona tablica to kopia czy widok:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8]) print(arr.reshape(2, 4).base)
Powyższy przykład zwraca oryginalną tablicę, więc jest to widok.
Nieznany wymiar
Możesz użyć "nieznanego" wymiaru.
To oznacza, że nie musisz określić dokładnej liczby dla jednego z wymiarów w metodzie reshape.
Przekazuj -1
Jako wartość, NumPy obliczy dla Ciebie ten numer.
Przykład
Przekształć 1D tablicę z 8 elementami w 3D tablicę z 2x2 elementami:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8]) newarr = arr.reshape(2, 2, -1) print(newarr)
Komentarz:Nie możemy przekształcić -1
Przekazywane do jednej lub kilku wymiarów.
Flattening tablic
Flattening tablic (Flattening the arrays) polega na przekształceniu wielowymiarowych tablic w 1D.
Możemy użyć reshape(-1)
Aby to zrobić.
Przykład
Przekształć tablicę w 1D:
import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) newarr = arr.reshape(-1) print(newarr)
Komentarz:Jest wiele funkcji, które można zmienić kształt tablicy numpy flatten, ravel, można również przestawiać elementy rot90, flip, fliplr, flipud itp. Te funkcje należą do średniozaawansowanej do zaawansowanej części numpy.
- Poprzednia strona Kształt tablic w NumPy
- Następna strona Iteracja tablic w NumPy