NumPyArrayToTable

Zusammenfassung

Konvertiert ein strukturiertes NumPy-Array in eine Tabelle.

Diskussion

Wenn ein Feldname aus dem Eingabe-Array für das Ausgabeformat ungültig ist, wird er validiert. Alle ungültigen Zeichen im Namen des Eingabefeldes werden im Namen des Ausgabefeldes durch einen Unterstrich (_) ersetzt. Beschränkungen für Feldnamen sind abhängig von der verwendeten Datenbank.

NumPyArrayToTable überschreibt keine vorhandene Tabelle, selbst dann nicht, wenn die Umgebungseinstellung overwriteOutput auf "True" festgelegt ist.

NumPyArrayToTable akzeptiert nur strukturierte Arrays. Wenn Sie ein normales NumPy-ndarray haben, muss dieses zuerst in ein strukturiertes Array konvertiert werden. Unten wird das ursprüngliche Array umgruppiert, und die numpy.core.records.fromarrays-Methode wird zum Erstellen des neuen strukturierten Arrays verwendet.

import numpy
import arcpy

a = numpy.array([(0.2, 1.0), (0.5, 2.5)])
struct_array = numpy.core.records.fromarrays(
    a.transpose(), numpy.dtype([("Value1", "f8"), ("Value2", "f8")])
)

arcpy.da.NumPyArrayToTable(struct_array, "c:/data/f.gdb/array_output")

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.

Syntax

NumPyArrayToTable (in_array, out_table)
ParameterErläuterungDatentyp
in_array

Ein strukturiertes NumPy-Array.

Das Array muss Feldnamen und NumPy-dtypes enthalten.

NumPyArray
out_table

The table to which the records from the NumPy array will be written.

String

Codebeispiel

NumPyArrayToTable: Beispiel 1
import arcpy
import numpy

# Create a simple array from scratch
inarray = numpy.array(
    [("a", 1, 1111.0), ("b", 2, 2222.22)],
    numpy.dtype(
        [("textfield", "|S256"), ("intfield", numpy.int32), ("doublefield", "<f8")]
    ),
)

# Convert array to a geodatabase table
arcpy.da.NumPyArrayToTable(inarray, "c:/data/gdb.gdb/out_table")
NumPyArrayToTable: Beispiel 2
import arcpy
import numpy

# Create a simple array from scratch using a list of values
recs = [["M", 64, 75.0], ["F", 25, 60.0]]
dts = {
    "names": ("gender", "age", "weight"),
    "formats": ("S1", numpy.uint8, numpy.float32),
}
array = numpy.rec.fromrecords(recs, dtype=dts)

# Convert array to a geodatabase table
arcpy.da.NumPyArrayToTable(array, "c:/data/gdb.gdb/out_table")

Verwandte Themen