Resumen
Convierte una matriz estructurada NumPy en una tabla.
Debate
Si un nombre de campo de la matriz de entrada no es válido para el formato de salida, se validará. Todos los caracteres no válidos del nombre del campo de entrada se sustituyen por un guion bajo (_) en el nombre del campo de salida. Las restricciones del nombre de campo dependen de la base de datos concreta que se utilice.
NumPyArrayToTable no sobrescribirá una tabla existente, ni siquiera si el entorno overwriteOutput está establecido en Verdadero.
NumPyArrayToTable solo acepta matrices estructuradas. Si tiene un NumPy regular ndarray, primero debe convertirse en una matriz estructurada. A continuación, se transpone el conjunto original y se utiliza el método numpy.core.records.fromarrays para crear la nueva matriz estructurada.
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.
Sintaxis
NumPyArrayToTable (in_array, out_table)
Parámetro | Explicación | Tipo de datos |
in_array | A NumPy structured array. The array must include field names and NumPy dtypes. | NumPyArray |
out_table | The table to which the records from the NumPy array will be written. | String |
Muestra de código
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")
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")