Краткая информация
Функция FeatureClassToNumPyArray выполняет преобразование класса объектов в структурированный массив NumPy.
Обсуждение
NumPy – это основной пакет для научных вычислений в Python, включая поддержку мощного N-мерного массива. Дополнительные сведения см. в разделе NumPy в ArcGIS.
Для преобразования таблицы в массив NumPy используйте вместо этого функцию TableToNumPyArray.
Синтаксис
FeatureClassToNumPyArray (in_table, field_names, {where_clause}, {spatial_reference}, {explode_to_points}, {skip_nulls}, {null_value})| Параметр | Описание | Тип данных |
in_table | Входной класс объектов, слой, таблица или табличное представление. | String |
field_names [field_names,...] | Список (или кортеж) имен полей. Для одного поля можно использовать строку вместо списка строк. Используйте звездочку (*) вместо списка полей для доступа ко всем полям из входной таблицы (BLOB-поля исключены). Однако для повышения производительности и улучшения надежности порядка полей рекомендуется сузить список полей до реально необходимых полей. Поля растра и типа BLOB не поддерживаются. Объекты геометрии не поддерживаются при использовании токена SHAPE@, но информация о геометрии может быть включена при использовании других токенов, таких как SHAPE@XY (кортеж координат центроида объекта), SHAPE@AREA и SHAPE@LENGTH. Доступ к дополнительной информации можно получить, используя токены (такие как OID@) вместо имен полей:
Export a feature class to a NumPy array. The output array will include a field for the Object ID and a field containing a tuple of the feature's centroid's x,y coordinates. SHAPE@M and SHAPE@Z tokens will only return values if the in_table contains point features and is m-aware (or z-aware). If the in_table contains polygon, polyline, or multipart features, SHAPE@M and SHAPE@Z will return a nan. Any feature class that is not m-aware or z-aware will not support SHAPE@M and SHAPE@Z tokens. (Значение по умолчанию — *) | String |
where_clause | Возвращается дополнительное выражение, которое ограничивает записи. Более подробно об условиях WHERE и выражений SQL см. Основы SQL для выражений запроса, применяемых в ArcGIS. (Значение по умолчанию — "") | String |
spatial_reference | Пространственная привязка класса объектов. Когда этот аргумент задан, объект будет спроецирован (или преобразован) из пространственной привязки входных данных. Если не указан, то будет использоваться пространственная привязка входных классов пространственных объектов. Допустимыми значениями этого аргумента являются объект SpatialReference или эквивалент строки. Use the spatial_reference argument to return coordinates in a different spatial reference. Here, a second feature class is described to access a spatial reference object. (Значение по умолчанию — None) | SpatialReference |
explode_to_points | Разбивает объект на отдельные точки или вершины. Если для explode_to_points задано значение True, то мультиточечный объект с пятью точками, например, представляется пятью строками. (Значение по умолчанию — False) | Boolean |
skip_nulls | Управляет тем, пропускаются ли записи со значениями NULL. Это может быть логическое значение True или False, функция Python или выражение lambda. Если задано значение True, запись пропускается, если какой-либо из атрибутов записи (в том числе геометрия) имеет значение null. При значении False, skip_nulls пытается использовать все записи, вне зависимости от значений null. В массиве NumPy отсутствие значений представляется как nan (not a number – не число) для числовых значений с плавающей точкой, но не для целых чисел. Skip all records that include a null. Функцию Python и выражение lambda можно использовать для более детального управления, например, записи в журнал значений OID всех записей с NULL. В обоих примерах ниже, выражение lambda или функция используются для определения OID с записями null. Use a function to capture all records that are skipped because of nulls. Use a lambda expression to capture all records that are skipped because of nulls. Примечание:В массивах NumPy строки с null представляются в типах с плавающей запятой, как nan, а в текстовых типах – как None. Целочисленные типы не поддерживают концепцию NULL. (Значение по умолчанию — False) | Variant |
null_value | Заменяет NULL из входных данных на новое значение. null_value заменяется до вычисления skip_nulls. Mask all None's in integer fields with a -9999. Mask None's in integer fields with different values using a dictionary. Внимание:Указание маски, например -9999, позволяет экспортировать целочисленные поля без значений (NULL) в массив NumPy, но будьте осторожны при использовании этих значений при анализе. Результаты могут быть искажены данным значением. (Значение по умолчанию — None) | Integer |
| Тип данных | Описание |
| NumPyArray | Структурированный массив NumPy. |
Пример кода
Преобразуйте таблицу в массив numpy и выполните базовую статистику с использованием numpy.
import arcpy
import numpy
input = "c:/data/usa.gdb/USA/counties"
arr = arcpy.da.FeatureClassToNumPyArray(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 = "c:/data/usa.gdb/USA/counties"
field1 = "INCOME"
field2 = "EDUCATION"
arr = arcpy.da.FeatureClassToNumPyArray(input, (field1, field2))
# Print correlation coefficients for comparison of 2 field values
#
print(numpy.corrcoef((arr[field1], arr[field2])))