Zusammenfassung
Konvertiert eine Feature-Class 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 Tabellen in ein NumPy-Array zu konvertieren, verwenden Sie stattdessen die Funktion TableToNumPyArray.
Syntax
FeatureClassToNumPyArray (in_table, field_names, {where_clause}, {spatial_reference}, {explode_to_points}, {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:
Export a feature class to a NumPy array. The output array will include a field for the Object ID and a field containing a tuple of the feature's centroid's x,y coordinates.
SHAPE@M and SHAPE@Z tokens will only return values if the in_table contains point features and is m-aware (or z-aware). If the in_table contains polygon, polyline, or multipart features, SHAPE@M and SHAPE@Z will return a nan. Any feature class that is not m-aware or z-aware will not support SHAPE@M and SHAPE@Z tokens. (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 |
spatial_reference | Der Raumbezug der Feature-Class. Er kann mit einem SpatialReference-Objekt oder einer Zeichenfolgenentsprechung angegeben werden. Use the spatial_reference argument to return coordinates in a different spatial reference. Here, a second feature class is described to access a spatial reference object.
(Der Standardwert ist None) | SpatialReference |
explode_to_points | Zerlegen eines Features in die einzelnen Punkte bzw. Stützpunkte. Wenn explode_to_points auf True festgelegt wird, wird ein Multipoint-Feature mit fünf Punkten beispielsweise durch fünf Zeilen dargestellt. (Der Standardwert ist False) | Boolean |
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. Skip all records that include a null.
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. Use a function to capture all records that are skipped because of nulls.
Use a lambda expression to capture all records that are skipped because of nulls.
(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 all None's in integer fields with a -9999.
Mask None's 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
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.FeatureClassToNumPyArray(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())
Verwenden Sie "TableToNumPyArray", um Korrelationskoeffizienten für zwei Felder zu bestimmen.
import arcpy
import numpy
input = "c:/data/usa.gdb/USA/counties"
field1 = "INCOME"
field2 = "EDUCATION"
arr = arcpy.da.FeatureClassToNumPyArray(input, (field1, field2))
# Print correlation coefficients for comparison of 2 field values
#
print(numpy.corrcoef((arr[field1], arr[field2])))