Zusammenfassung
Konvertiert eine Feature-Class in ein strukturiertes NumPy-Array.
Diskussion
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 | Erläuterung | 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. Geben Sie anstelle einer Felderliste ein Sternchen (*) an, um auf alle Felder der Eingabetabelle zuzugreifen (BLOB-Felder werden ausgeschlossen). 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. Bei Verwendung des SHAPE@-Token werden Geometrieobjekte nicht unterstützt, jedoch können Geometrieinformationen mithilfe anderer Token, z. B. SHAPE@XY (Tupel der Koordinaten des Feature-Schwerpunktes), SHAPE@AREA und SHAPE@LENGTH, einbezogen werden. Anstelle von Feldnamen kann auf zusätzliche Informationen auch über Token (z. B. OID@) zugegriffen werden:
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 SQL-Referenz für in ArcGIS verwendete Abfrageausdrücke. (Der Standardwert ist "") | String |
spatial_reference | Der Raumbezug der Feature-Class. Wird dieses Argument angegeben, erfolgt für das Feature eine Projektion (Transformation) aus dem Raumbezug der Eingabe. Bei keiner Angabe wird der Raumbezug der Eingabe-Feature-Class verwendet. Gültige Werte für dieses Argument sind SpatialReference-Objekte oder Zeichenfolgenentsprechungen. 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 ist, wird beispielsweise ein Multipoint-Feature mit fünf Punkten durch fünf Zeilen dargestellt. (Der Standardwert ist False) | Boolean |
skip_nulls | Steuert, ob Datensätze mit NULL-Werten übersprungen werden. Es kann sich um den booleschen Wert True oder False, eine Python-Funktion oder einen lambda-Ausdruck handeln. Wenn die Option auf True festgelegt ist und die Attribute eines Datensatzes NULL sind (einschließlich der Geometrie), wird der Datensatz übersprungen. Bei der Einstellung False versucht skip_nulls, unabhängig von NULL-Werten alle Datensätze 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.
Mit einer Python-Funktion oder einem lambda-Ausdruck kann eine genauere Steuerung erreicht werden, z. B. um die OID-Werte aller Datensätze mit NULL-Wert zu protokollieren. In beiden nachfolgenden Beispielen wird der lambda-Ausdruck bzw. die Funktion dazu verwendet, OIDs mit NULL-Datensätzen zu ermitteln. 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.
Hinweis:Bei NumPy-Arrays werden NULL-Werte in Float-Typen, z. B. nan, sowie in Texttypen, z. B. None, repräsentiert. Von Integer-Typen wird das Konzept von NULL-Werten nicht unterstützt. (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.
Vorsicht:Bei Bereitstellung einer Maske wie -9999 können ganzzahlige Felder mit NULL-Werten in ein NumPy-Array exportiert werden. Bei Verwendung dieser Werte in Analysen ist jedoch Vorsicht angebracht. Die Ergebnisse können durch den einbezogenen Wert ungewollte Verzerrungen aufweisen. (Der Standardwert ist None) | Integer |
Datentyp | Erläuterung |
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])))