Przekształcanie 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)

Uruchom przykład

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)

Uruchom przykład

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)

Uruchom przykład

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)

Uruchom przykład

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)

Uruchom przykład

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)

Uruchom przykład

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.