NumPyArrayToTable

Zusammenfassung

The NumPyArrayToTable function converts a NumPy structured array to a table.

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 will not overwrite an existing table, even if the overwriteOutput environment is set to True.

NumPyArrayToTable only accepts structured arrays. If you have a regular NumPy ndarray, it must first be converted to a structured array. Below, the original array is transposed, and the numpy.core.records.fromarrays method is used to create the new structured array.

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 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 example 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 example 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