Czy ktoś wie, jak wyodrębnić kolumnę z wielowymiarowej tablicy w Pythonie?
240
Czy ktoś wie, jak wyodrębnić kolumnę z wielowymiarowej tablicy w Pythonie?
>>> import numpy as np
>>> A = np.array([[1,2,3,4],[5,6,7,8]])
>>> A
array([[1, 2, 3, 4],
[5, 6, 7, 8]])
>>> A[:,2] # returns the third columm
array([3, 7])
Zobacz także: „numpy.arange” i „reshape”, aby przydzielić pamięć
Przykład: (Przydział tablicy z kształtowaniem macierzy (3x4))
nrows = 3
ncols = 4
my_array = numpy.arange(nrows*ncols, dtype='double')
my_array = my_array.reshape(nrows, ncols)
[row, col]
. przecinek rozdziela się.Czy to możliwe, że używasz tablicy NumPy ? Python ma moduł macierzy , ale nie obsługuje tablic wielowymiarowych. Normalne listy w języku Python są również jednowymiarowe.
Jeśli jednak masz prostą dwuwymiarową listę, taką jak ta:
następnie możesz wyodrębnić taką kolumnę:
Wyodrębnianie drugiej kolumny (indeks 1):
Lub alternatywnie po prostu:
źródło
Jeśli masz tablicę podobną do
Następnie wyodrębnij pierwszą kolumnę w ten sposób:
Wynik wygląda następująco:
źródło
Sprawdź to!
jest to to samo, co powyżej, z wyjątkiem tego, że jest ładniejszy, zip działa, ale wymaga pojedynczych tablic jako argumentów, składnia * a rozpakowuje tablicę wielowymiarową na argumenty z jedną tablicą
źródło
a2 = zip(*a); a2 = list(a2); a2[0]
funkcja map w Pythonie to kolejna droga.
źródło
jeśli chcesz drugą kolumnę możesz użyć
źródło
arange()
Python3 poza Numpy. Ktoś?źródło
Operator itemgetter również może pomóc, jeśli lubisz styl python w stylu zmniejszania mapy, a nie listy ze zrozumieniem, dla małej różnorodności!
źródło
Możesz również użyć tego:
Uwaga: Nie działa to dla wbudowanej tablicy i nie jest wyrównane (np. Tablica np. ([[1,2,3], [4,5,6,7]]))
źródło
Myślę, że chcesz wyodrębnić kolumnę z tablicy, takiej jak tablica poniżej
Teraz, jeśli chcesz uzyskać trzecią kolumnę w formacie
Następnie musisz najpierw uczynić tablicę macierzą
A teraz możesz wykonywać mądre obliczenia, podobnie jak w Excelu.
źródło
powiedzmy, że mamy
n X m
macierz (n
wiersze im
kolumny), powiedzmy 5 wierszy i 4 kolumnyAby wyodrębnić kolumny w pythonie, możemy użyć takiego rozumienia listy
Możesz zastąpić 4 dowolną liczbą kolumn w macierzy. Wynik to
[ [1,5,9,13,17],[2,10,14,18],[3,7,11,15,19],[4,8,12,16,20] ]
źródło
źródło
Jeszcze jeden sposób korzystania z macierzy
źródło
Jeśli masz w Pythonie dwuwymiarową tablicę (nie numpy), możesz wyodrębnić wszystkie kolumny w ten sposób,
Wykonanie tego kodu da,
Oczywiście możesz wyodrębnić pojedynczą kolumnę według indeksu (np.
columns[0]
)źródło
Pomimo
zip(*iterable)
transpozycji listy zagnieżdżonej możesz użyć następujących opcji, jeśli listy zagnieżdżone różnią się długością:prowadzi do:
Pierwsza kolumna to:
źródło
„Trochę” późno…
W przypadku, gdy wydajność ma znaczenie, a dane mają kształt prostokąta, możesz również przechowywać je w jednym wymiarze i uzyskać dostęp do kolumn poprzez regularne krojenie, np.
Fajne jest to, że jest naprawdę szybki. Jednak ujemne indeksy tutaj nie działają! Więc nie możesz uzyskać dostępu do ostatniej kolumny lub wiersza według indeksu -1.
Jeśli potrzebujesz indeksowania ujemnego, możesz nieco dostroić funkcje akcesora, np
źródło
Jeśli chcesz złapać więcej niż jedną kolumnę, po prostu użyj wycinka:
źródło
Wolę następną wskazówkę: nazwać macierz
matrix_a
i użyćcolumn_number
na przykład:źródło
Wystarczy użyć transpose (), aby uzyskać kolumny tak proste, jak wiersze
źródło
Wszystkie kolumny z macierzy na nową listę:
źródło