Zusammenfassung
Konvertiert eine Tabelle in ein strukturiertes NumPy-Array.
Auswertung
NumPy is a fundamental package for scientific computing in Python, including support for a powerful N-dimensional array object. For more information, see Working with NumPy in ArcGIS.
Um Feature-Classes in ein NumPy-Array zu konvertieren, verwenden Sie stattdessen die Funktion FeatureClassToNumPyArray.
Syntax
TableToNumPyArray (in_table, field_names, {where_clause}, {skip_nulls}, {null_value})
Parameter | Erklärung | Datentyp |
in_table | Die Feature-Class, der Layer, die Tabelle oder die Tabellensicht | String |
field_names [field_names,...] | Eine Liste (oder ein Tupel) von Feldnamen. Für ein einzelnes Feld kann eine Zeichenfolge statt einer Zeichenfolgenliste verwendet werden. Verwenden Sie ein Sternchen (*) statt einer Liste von Feldern, wenn Sie über die Eingabetabelle auf alle Felder zugreifen möchten (Raster- und BLOB-Felder sind ausgenommen). Um die Performance zu verbessern und eine zuverlässige Feldreihenfolge zu erzielen, wird jedoch empfohlen, die Liste der Felder lediglich auf die tatsächlich benötigten Felder zu beschränken. Raster- und BLOB-Felder werden nicht unterstützt. Geometrieobjekte werden mit dem Token SHAPE@ nicht unterstützt. Geometrieinformationen können jedoch unter Verwendung anderer Token, beispielsweise SHAPE@XY (Tupel der Schwerpunktkoordinaten des Features), SHAPE@AREA und SHAPE@LENGTH einbezogen werden. Der Zugriff auf zusätzliche Informationen kann mit Token (z. B. OID@) statt Feldnamen erfolgen:
(Der Standardwert ist *) | String |
where_clause | Ein optionaler Ausdruck zur Begrenzung der zurückgegebenen Datensätze. Weitere Informationen zu WHERE-Klauseln und SQL-Anweisungen finden Sie unter Erstellen von Abfrageausdrücken. (Der Standardwert ist "") | String |
skip_nulls | Steuert, ob Datensätze mit NULL-Werten übersprungen werden. Hierbei kann es sich um einen booleschen True- oder False-Wert, eine Python-Funktion oder einen lambda-Ausdruck handeln. Ist True festgelegt, wird der Datensatz übersprungen, wenn eines der Attribute des Datensatzes (einschließlich "geometry") NULL ist. Bei der Einstellung False wird mit skip_nulls versucht, alle Datensätze ohne Berücksichtigung von NULL-Werten zu verwenden. In einem NumPy-Array wird NULL für numerische Gleitkommawerte, nicht jedoch für ganze Zahlen, als NaN (Not a Number, keine Zahl) dargestellt. Nachstehend finden Sie ein Beispiel für das Überspringen aller Datensätze, die einen NULL-Wert enthalten.
Eine Python-Funktion oder ein lambda-Ausdruck kann zur genaueren Steuerung verwendet werden, u. a. zum Protokollieren der OID-Werte aller Datensätze, die einen NULL-Wert enthalten. In den beiden folgenden Beispielen wird der lambda-Ausdruck oder eine Funktion zum Identifizieren von OIDs mit NULL-Datensätzen verwendet. Verwenden Sie eine Funktion, um alle Datensätze zu erfassen, die aufgrund von NULL-Werten übersprungen werden.
Verwenden Sie einen Lambda-Ausdruck, um alle Datensätze zu erfassen, die aufgrund von NULL-Werten übersprungen werden.
(Der Standardwert ist False) | Variant |
null_value | Ersetzt NULL-Werte aus der Eingabe durch einen neueren Wert. null_value wird ersetzt, bevor skip_nulls ausgewertet wird. Mask None values in integer fields with a -9999.
Mask None values in integer fields with different values using a dictionary.
(Der Standardwert ist None) | Integer |
Rückgabewert
Datentyp | Erklärung |
NumPyArray | Ein strukturiertes NumPy-Array. |
Codebeispiel
TableToNumPyArray – Beispiel 1
Konvertieren Sie eine Tabelle in ein NumPy-Array, und führen Sie einige grundlegende Statistiken mit NumPy durch.
import arcpy
import numpy
input = "c:/data/usa.gdb/USA/counties"
arr = arcpy.da.TableToNumPyArray(input, ('STATE_NAME', 'POP1990', 'POP2000'))
# Sum the total population for 1990 and 2000
#
print(arr["POP1990"].sum())
print(arr["POP2000"].sum())
# Sum the population for the state of Minnesota
#
print(arr[arr['STATE_NAME'] == "Minnesota"]['POP2000'].sum())
TableToNumPyArray – Beispiel 2
Verwenden Sie "TableToNumPyArray", um Korrelationskoeffizienten für zwei Felder zu bestimmen.
import arcpy
import numpy
input = arcpy.GetParameterAsText(0)
field1 = arcpy.GetParameterAsText(1)
field2 = arcpy.GetParameterAsText(2)
arr = arcpy.da.TableToNumPyArray(input, (field1, field2))
# Print correlation coefficients for comparison of 2 field values
#
print(numpy.corrcoef((arr[field1], arr[field2])))