[PYTHON] Verschiedene Methoden zum Extrahieren von Spalten des NumPy-Arrays

Verschiedene Methoden zum Extrahieren von Spalten eines zweidimensionalen Arrays.

import

python


import numpy as np

Sequenzgenerierung

Generieren Sie zunächst ein geeignetes 5x4-Array

python


a = np.arange(5*4).reshape([5, 4])
print(a)
# [[ 0  1  2  3]
#  [ 4  5  6  7]
#  [ 8  9 10 11]
#  [12 13 14 15]
#  [16 17 18 19]]

Extrahieren Sie eine bestimmte Spalte

python


#Nur 2. Reihe
b = a[:, 2]
print(b)
# [ 2 6 10 14 18]

Wenn "a [Zeile, Spalte]" angegeben ist, wird die Zeile im Teil "Zeile" und die Spalte im Teil "Spalte" angegeben. Da wir diesmal die Spalte abrufen möchten, ist der Teil "Zeile" immer ":". Wenn Sie nur ":" schreiben, bedeutet dies, dass keine bestimmte Zeile angegeben ist. Mit anderen Worten, "a [:, 2]" Bedeutet: "Aus allen Zeilen bitte nur das Element mit Index 2."

Extrahieren Sie mehrere aufeinanderfolgende Spalten

Extrahieren Sie mehrere aufeinanderfolgende Spalten, z. B. die 1., 2. und 0. bis 2. Spalte.

python


# 1,2. Reihe
b = a[:, 1:3]
print(b)
# [[ 1  2]
#  [ 5  6]
#  [ 9 10]
#  [13 14]
#  [17 18]]

Da "1: 3" 1 oder mehr und weniger als 3 bedeutet, können die 1. und 2. Spalte extrahiert werden. Wenn Sie "1:" oder ": 3" angeben, können Sie alle Spalten über der ersten Spalte und unter der dritten Spalte abrufen.

python


#1. Reihe~
b = a[:, 1:]
print(b)
# [[ 1  2  3]
#  [ 5  6  7]
#  [ 9 10 11]
#  [13 14 15]
#  [17 18 19]]

# 0~2. Reihe
b = a[:, :3]
print(b)
# [[ 0  1  2]
#  [ 4  5  6]
#  [ 8  9 10]
#  [12 13 14]
#  [16 17 18]]

Gerade Spalten, ungerade Spalten usw.

python


#Generieren Sie ein 4x8-Array
a = np.arange(4*8).reshape([4, 8])
# [[ 0  1  2  3  4  5  6  7]
#  [ 8  9 10 11 12 13 14 15]
#  [16 17 18 19 20 21 22 23]
#  [24 25 26 27 28 29 30 31]]

#Gerade Spalte
b = a[:, ::2]
print(b)
# [[ 0  2  4  6]
#  [ 8 10 12 14]
#  [16 18 20 22]
#  [24 26 28 30]]

#Ungerade Spalte
b = a[:, 1::2]
print(b)
# [[ 1  3  5  7]
#  [ 9 11 13 15]
#  [17 19 21 23]
#  [25 27 29 31]]

Auf diese Weise kann es, da es im Wesentlichen der Operationsmethode der Liste folgt, in Vielfachen oder in umgekehrter Reihenfolge erfasst werden.

python


#Zeilen, die ein Vielfaches von 3 von hinten sind
b = a[:, ::-3]
print(b)
# [[ 7  4  1]
#  [15 12  9]
#  [23 20 17]
#  [31 28 25]]

#Überspringen Sie eine Zeile von der ersten bis weniger als die siebte Zeile
b = a[:, 1:7:2]
print(b)
# [[ 1  3  5]
#  [ 9 11 13]
#  [17 19 21]
#  [25 27 29]]

Extrahieren Sie mehrere Spalten unregelmäßig

Persönlich ist das Hauptthema von hier. Es gibt Zeiten, in denen Sie Spalten unregelmäßig abrufen möchten, z. B. Spalten 1, 5 und 6. Es erfordert viel Arbeit, kann jedoch erreicht werden, indem ein Filter mit der gleichen Länge wie die Anzahl der Spalten vorbereitet wird.

python


#Index 1, 5,Der Wert 6 ist True,Ansonsten eine Liste mit falscher Länge 8
f = [False, True, False, False, False, True, True, False]

b = a[:, f]
print(b)
# [[ 1  5  6]
#  [ 9 13 14]
#  [17 21 22]
#  [25 29 30]]

#Generieren Sie eine boolesche Nullmatrix vom Typ 1x8,Ein Muster, das nur den Indexwert der gewünschten Spalte in True ändert
f = np.zeros(8, dtype=bool)
columns = [1, 5, 6]
f[columns] = True

b = a[:, f]
print(b)
# [[ 1  5  6]
#  [ 9 13 14]
#  [17 21 22]
#  [25 29 30]]

#Wenn Sie andere als die angegebenen Spalten erhalten möchten, generieren Sie ein Array mit allen True-Werten,Ändern Sie nur unnötige Spalten in False
f = np.ones(8, dtype=bool)
columns = [1, 5, 6]
f[columns] = False

b = a[:, f]
print(b)
# [[ 0  2  3  4  7]
#  [ 8 10 11 12 15]
#  [16 18 19 20 23]
#  [24 26 27 28 31]]

Ich denke, dass die meisten Arrays, die von ~~ numpy verarbeitet werden, eine große Anzahl von Spalten haben, daher denke ich, dass die zweite Methode die Hauptmethode sein wird. In diesem Beispiel wird "np.zeros" verwendet. In einigen Situationen ist es jedoch möglicherweise einfacher, ein Array von "np.ones" mit allen Elementen "True" zu erstellen und dann nur die unerwünschten Spalten in "False" zu ändern. . ~~

python


#Generieren Sie ein 4x8-Array
a = np.arange(4*8).reshape([4, 8])
# [[ 0  1  2  3  4  5  6  7]
#  [ 8  9 10 11 12 13 14 15]
#  [16 17 18 19 20 21 22 23]
#  [24 25 26 27 28 29 30 31]]

# 1, 5,6 Reihen herausnehmen
b = a[:, [1, 5, 6]]
print(b)
# [[ 1  5  6]
#  [ 9 13 14]
#  [17 21 22]
#  [25 29 30]]

abschließend

Ich dachte, dass es schwierig zu verstehen wäre, selbst wenn die Geschichte zu stark erweitert würde, also konzentrierte ich mich diesmal nur auf die Spalten, aber es ist auch möglich, eine bestimmte Spalte einer bestimmten Zeile zu extrahieren, indem sowohl die Zeile als auch die Spalte angegeben werden. Bei 3 Dimensionen oder mehr Mit diesen Methoden können Sie die gewünschten Elemente extrahieren.

Ich denke, dass die Methode zum Erstellen einer Nullmatrix und zum Extrahieren der Spalten, die ich ganz am Ende erklärt habe, für mich ziemlich sauber war, aber ich denke, dass es andere einfachere Methoden geben kann ~~.

Nachtrag

@Nkay kommentierte eine intelligentere Methode zum Abrufen mehrerer Spalten, daher habe ich sie hinzugefügt. (4. Juli 2020)

Recommended Posts

Verschiedene Methoden zum Extrahieren von Spalten des NumPy-Arrays
Verschiedene Möglichkeiten, ein Wörterbuch zu erstellen (Erinnerungen)
Verschiedene Möglichkeiten, um in Python ein Array von Zahlen von 1 bis 10 zu erstellen.
Sortieren durch Angabe einer Spalte im Python Numpy-Array.
[Python] Listenverständnis Verschiedene Möglichkeiten zum Erstellen einer Liste
Verschiedene Möglichkeiten, die letzte Zeile einer CSV-Datei in Python zu lesen
Konvertieren Sie das NumPy-Array "ndarray" in Python [tolist ()]
Versuchen Sie es auf verschiedene Arten zu lösen (SAT, CSP)
2 Möglichkeiten, alle CSV-Dateien in einem Ordner zu lesen
Erstellen Sie ein Python-Numpy-Array
So schneiden Sie ein Block-Multiple-Array aus einem Multiple-Array in Python
Verschiedene Methoden zur Berechnung der Ähnlichkeit zwischen Daten mit Python
So extrahieren Sie mit Numpy einen anderen als einen bestimmten Index
Extrahieren Sie Array-Elemente und -Indizes in absteigender Reihenfolge mit numpy
Ich möchte die gültigen Zahlen im Numpy-Array ausrichten
Indexierter Zugriff auf das Python-Numpy-Array
So machen Sie einen String in Python zu einem Array oder ein Array zu einem String
6 Möglichkeiten zum Stringen von Objekten in Python
Ich habe ein Skript geschrieben, um Webseiten-Links in Python zu extrahieren
5 Möglichkeiten zum Erstellen eines Python-Chatbots
Extrahieren Sie mehrere Elemente mit dem Numpy-Array
Invertiere numpy Boolean Array in Tilda
Erstellen Sie mit Numpy ein leeres Array, um Zeilen für jede Schleife hinzuzufügen
Verwendung berechneter Spalten in CASTable
Ich möchte in der Einschlussnotation drucken
Wie bekomme ich Stacktrace in Python?
So extrahieren Sie einen Polygonbereich in Python
[V11 ~] Ein Memorandum für Misskey
Verschiedene Kommentare im Programm zu schreiben
Verschiedene Möglichkeiten, Ressourcen mit Umfang zu zerstören
Hinzufügen von Serien zur Spalte in Python-Pandas
Eine verwirrende Geschichte mit zwei Möglichkeiten, XGBoost in Python + zu implementieren
Speichern Sie das numpy-Array mithilfe des Wave-Moduls in einer WAV-Datei
Extrahieren Sie Elemente (mithilfe einer Liste von Indizes) wie NumPy aus einer Python-Liste / einem Python
Verschiedene Möglichkeiten, .py-Dateien unter Windows auszuführen
3 Möglichkeiten, Zeitzeichenfolgen mit Python zu analysieren [Hinweis]
Berechnen wir das statistische Problem mit Python
[Python] Der Weg zur Schlange (4) Numpy zwicken
So löschen Sie einen Taple in einer Liste (Python)
Einbetten von Variablen in Python-Strings
Fügen Sie einem leeren Array mit numpy Zeilen hinzu
Ich möchte mit Python ein Fenster erstellen
So installieren Sie pip, numpy auf Autodesk MAYA
[Python] Vertauschen von Zeilen und Spalten mit Numpy-Daten
So erstellen Sie eine JSON-Datei in Python
Eine clevere Möglichkeit zur Zeitverarbeitung mit Python
So implementieren Sie eine Verlaufsauswahl in Houdini
Schritte zum Entwickeln einer Webanwendung in Python
So extrahieren Sie den Koeffizienten aus der Minutenformel
Konvertieren Sie eine mehrdimensionale Liste (Array) in eine Dimension
So überprüfen / extrahieren Sie Dateien im RPM-Paket
So fügen Sie Python ein Modul hinzu, das Sie in Julialang eingefügt haben
Extrahieren Sie mit Pandas Zeilen, die eine bestimmte "Zeichenfolge" enthalten
So benachrichtigen Sie Discord-Kanäle in Python
Ausgabe in Form eines Python-Arrays
[Python] Wie zeichnet man mit Matplotlib ein Histogramm?