NumPyArrayToTable

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

Выполняет преобразование структурированного массива NumPy в таблицу.

Обсуждение

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

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

NumPyArrayToTable работает только со структурированными массивами. Если у вас обычный NumPy ndarray, его надо сначала преобразовать в структурированный. Ниже транспонируется исходный массив, и для создания нового структурированного массива используется метод numpy.core.records.fromarrays.

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 – это основной пакет для экспоненциальных вычислений в Python с поддержкой мощных n-размерных объектов типа массив (array). Подробнее см. в разделе Работа с NumPy в ArcGIS.

Синтаксис

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

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

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

NumPyArray
out_table

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

String

Пример кода

NumPyArrayToTable, пример 1
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")
NumPyArrayToTable, пример 2
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")

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