TableToNumPyArray (arcpy.da)
Резюме
Конвертирует таблицу в структурированный массив NumPy.
Обсуждение
Функция FeatureClassToNumPyArray аналогична функции TableToNumPyArray. Функция FeatureClassToNumPyArray также предоставляет дополнительные аргументы для работы с данными объектов.
NumPy – это основной пакет для экспоненциальных вычислений в Python с поддержкой мощных n-размерных объектов типа массив (array). Подробнее см. в разделе Работа с NumPy в ArcGIS.
Синтаксис
Параметр | Объяснение | Тип данных |
in_table |
Входной класс объектов, слой, таблица или табличное представление. | String |
field_names [field_names,...] | Список (или кортеж) имен полей. Для одного поля можно использовать строку вместо списка строк. Используйте символ звездочки (*) вместо списка полей, если вы хотите получить доступ ко всем полям из входной таблицы (растровые поля и поля BLOB исключены). Однако для повышения производительности и улучшения надежности порядка полей рекомендуется сузить список полей до реально необходимых полей. Поля даты, растра и BLOB не поддерживаются. Дополнительные сведения можно получить, используя токены (такие как OID@) вместо имен полей:
(Значение по умолчанию — *) | String |
where_clause | Возвращается дополнительное выражение, которое ограничивает записи. Дополнительные сведения о выражениях WHERE и инструкциях SQL см. в разделах Построение выражения запроса и Определение запроса в Python. (Значение по умолчанию — "") | String |
skip_nulls | Управляет пропусканием записей со значениями NULL. Это может быть логическое значение true или false, функция Python или лямбда-выражение. Если задано значение True, запись пропускается, если какой-либо из атрибутов записи (в том числе геометрия) имеет значение NULL. При значении False skip_nulls пытается использовать все записи независимо от значений NULL (NumPy поддерживает значение nan для значений с плавающей запятой, но не для целочисленных значений). Пример пропуска всех записей со значениями NULL.
Выражение функции Python или лямбда-можно использовать для более точного управления, например записи в журнал значений OID всех записей со значением NULL. В обоих примерах ниже выражение лямбда или функция используются для определения OID с записями, содержащими значения NULL. Используйте функцию для получения всех записей, пропущенных из-за значений NULL.
Используйте лямбда-выражения для получения всех записей, пропущенных из-за значений NULL.
Примечание: В массивах NumPy значения NULL представляются в типах с плавающей запятой как nan, а в текстовых типах — как None. Целочисленные типы не поддерживают концепцию значений NULL. (Значение по умолчанию — False) | Variant |
null_value | Заменяет значения NULL из входных данных на новое значение. null_value заменяется до вычисления skip_null. Замаскируйте все значения Нет (None) в целочисленных полях значением -9999.
С помощью словаря замаскируйте другими значениями все значения Нет (None) в целочисленных полях.
Внимание: Указание маски, например -9999, позволяет экспортировать целочисленные поля со значениями NULL в массив NumPy, но будьте осторожны при использовании этих значений при анализе. Результаты могут быть искажены данным значением. (Значение по умолчанию — None) | Integer |
Тип данных | Объяснение |
NumPyArray |
Структурированный массив NumPy. |
Пример кода
Преобразование таблицы в массив NumPY и выполнение базовых статистических операций с NumPY.
import arcpy
import numpy
input = "c:/data/usa.gdb/USA/counties"
arr = arcpy.da.TableToNumPyArray(input, ('STATE_NAME', 'POP1990', 'POP2000'))
# Sum the total population for 1990 and 2000
#
print(arr["POP1990"].sum())
print(arr["POP2000"].sum())
# Sum the population for the state of Minnesota
#
print(arr[arr['STATE_NAME'] == "Minnesota"]['POP2000'].sum())
Используйте функцию TableToNumPyArray для определения коэффициентов корреляции для двух полей.
import arcpy
import numpy
input = arcpy.GetParameterAsText(0)
field1 = arcpy.GetParameterAsText(1)
field2 = arcpy.GetParameterAsText(2)
arr = arcpy.da.TableToNumPyArray(input, (field1, field2))
# Print correlation coefficients for comparison of 2 field values
#
print(numpy.corrcoef((arr[field1], arr[field2])))