NumPyArrayToTable

Resumen

Convierte una matriz estructurada NumPy en una tabla.

Debate

If a field name from the input array is invalid for the output format, it will be validated. All invalid characters in the input field name are replaced with an underscore (_) in the output field name. Field name restrictions depend on the specific database used.

NumPyArrayToTable no sobrescribirá ninguna tabla existente, ni siquiera si el entorno overwriteOutput está definido como True.

NumPyArrayToTable solo acepta matrices estructuradas. Si tiene un ndarray NumPy normal, primero será necesario convertirlo en una matriz estructurada. A continuación, se realiza una transposición de la matriz original y se utiliza el método numpy.core.records.fromarrays para crear la nueva matriz estructurada.

import numpy
import arcpy
import os

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ámetroExplicaciónTipo 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")

Temas relacionados