Краткая информация
Выполняет преобразование структурированного массива 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 |
Пример кода
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")