Resumen
Convierte una clase de entidad en una matriz estructurada NumPy.
Debate
NumPy is a fundamental package for scientific computing in Python, including support for a powerful N-dimensional array object. For more information, see Working with NumPy in ArcGIS.
Para convertir tablas en una matriz NumPy, use la función TableToNumPyArray en su lugar.
Sintaxis
FeatureClassToNumPyArray (in_table, field_names, {where_clause}, {spatial_reference}, {explode_to_points}, {skip_nulls}, {null_value})
Parámetro | Explicación | Tipo de datos |
in_table | La clase de entidad, capa, tabla o vista de tabla. | String |
field_names [field_names,...] | Una lista (o tupla) de nombres de campo. Para un único campo, puede utilizar una cadena en lugar de una lista de cadenas. Use un asterisco (*) en lugar de una lista de campos para acceder a todos los campos de la tabla de entrada (se excluyen los campos BLOB). Sin embargo, para un rendimiento más rápido y un orden de campo fiable, se recomienda que la lista de campos se acote a solo aquellos que se necesitan realmente. Los campos ráster y BLOB no se admiten. Los objetos de geometría no se admiten con el token SHAPE@, pero se puede incluir información de geometría con otros tokens como SHAPE@XY (una tupla de las coordenadas del centroide de la entidad), SHAPE@AREA y SHAPE@LENGTH. Es posible acceder a información adicional con tokens (como OID@) en lugar de nombres de campo:
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. (El valor predeterminado es *) | String |
where_clause | Una expresión opcional que limita los registros que se devuelven. Para obtener más información sobre cláusulas WHERE y sentencias SQL, consulte Referencia de SQL para las expresiones de consulta utilizadas en ArcGIS. (El valor predeterminado es "") | String |
spatial_reference | La referencia espacial de la clase de entidad. Cuando se especifica este argumento, la entidad se proyectará (o transformará) a partir de la referencia espacial de la entrada. Si no se especifica, se utilizará la referencia espacial de las clases de entidad de entrada. Los valores válidos para este argumento son un objeto de SpatialReference o un equivalente de cadena. 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.
(El valor predeterminado es None) | SpatialReference |
explode_to_points | Deconstruya una entidad en sus puntos o vértices individuales. Si explode_to_points se define como True, una entidad multipunto con cinco puntos, por ejemplo, se representa con cinco filas. (El valor predeterminado es False) | Boolean |
skip_nulls | Controle si se omiten los registros que utilizan valores nulos. Puede ser un booleano True o False, o una función Python o una expresión lambda. Cuando se define como True, si alguno de los atributos del registro es nulo (incluida la geometría), el registro se omite. Con una configuración False, skip_nulls intenta utilizar todos los registros con independencia de los valores nulos. En una matriz NumPy, un valor nulo se representa como NaN (no es un número) para valores numéricos de punto flotante, pero no para enteros. Skip all records that include a null.
Una función Python o expresión lambda se pueden utilizar para permitir un control más preciso, incluido el registro de valores de OID para todos los registros que incluyan un valor nulo. En los siguientes dos ejemplos, la función o expresión lambda se utiliza para identificar OID que incluyen registros nulos. 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.
Nota:En matrices NumPy, los valores nulos se representan en tipos flotantes como nan y en tipos de texto como None. Los tipos enteros no admiten el contepto de valores nulos. (El valor predeterminado es False) | Variant |
null_value | Los valores nulos se sustituyen de la entrada por un valor nuevo. null_value se sustituye antes de evaluar skip_nulls. Mask all None's in integer fields with a -9999.
Mask None's in integer fields with different values using a dictionary.
Precaución:Proporcionar una máscara como -9999 permite que los campos de enteros contengan valores nulos para exportarlos a una matriz NumPy, pero tenga ciudado al utilizar estos valores en el análisis. Es posible que los valores estén sesgados sin querer por parte del valor introducido. (El valor predeterminado es None) | Integer |
Tipo de datos | Explicación |
NumPyArray | Una matriz estructurada NumPy. |
Muestra de código
Convierta una tabla en una matriz NumPy y realice algunas estadísticas básicas con 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())
Use TableToNumPyArray para determinar los coeficientes de correlación para dos campos.
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])))