NumPyArrayToTable

Краткая информация

Конвертирует структурированный массив NumPy в таблицу.

Обсуждение

Если имя поля из входного массива не подходит для выходного формата, оно будет изменено. Все некорректные символы имени входного поля будут заменены в имени выходного поля символом подчеркивания (_). Ограничения на имена полей зависят от используемой базы данных.

NumPyArrayToTable не перезаписывает существующую таблицу, даже если переменная среды overwriteOutput имеет значение True.

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-размерных объектов типа массив (array). Подробнее см. в разделе Работа с NumPy в ArcGIS.

Синтаксис

NumPyArrayToTable (in_array, out_table)
ПараметрОписаниеТип данных
in_array

Структурированный массив NumPy.

Массив должен содержать имена полей и типы dtype NumPy.

NumPyArray
out_table

Таблица, в которую помещаются записи из массива NumPy.

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

Связанные разделы