NumPyArrayToTable (arcpy.da)

摘要

将 NumPy 结构化数组转换为表。

讨论

如果输入数组中的字段名称相对于输出格式无效,则将对其进行验证。输入字段名称中的所有无效字符在输出字段名称中都将用下划线 (_) 代替。字段名称的限制取决于所使用的特定数据库。

即使将 overwriteOutput 环境设置为 True,NumPyArrayToTable 也不会覆盖现有表。

NumPyArrayToTable 仅接受结构化数组。如果具有常规 NumPy ndarray,则需先将其转换为结构化数组。下面,我们将转置原始数组,然后使用 numpy.core.records.fromarrays 方法创建新结构化数组。

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 是 Python 中用于进行科学计算的基础包,其包括支持功能强大的 N 维数组对象。有关详细信息,请参阅在 ArcGIS 中使用 NumPy

语法

NumPyArrayToTable (in_array, out_table)
参数说明数据类型
in_array

NumPy 结构化数组。

数组必须包含字段名称和 NumPy dtype。

NumPyArray
out_table

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

String

代码实例

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")

相关主题

5/10/2014