Resumen
The NumPyArrayToTable function converts a NumPy structured array to a table.
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 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.
Sintaxis
NumPyArrayToTable (in_array, out_table)
| Parámetro | Explicación | Tipo de datos |
in_array | Una matriz estructurada NumPy. La matriz debe incluir nombres de campo y dtypes NumPy. | 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")