概要
フィーチャクラスを NumPy 構造化配列に変換します。
ディスカッション
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.
テーブルを NumPy 配列に変換するには、代わりに TableToNumPyArray 関数を使用します。
構文
FeatureClassToNumPyArray (in_table, field_names, {where_clause}, {spatial_reference}, {explode_to_points}, {skip_nulls}, {null_value})
パラメーター | 説明 | データ タイプ |
in_table | The feature class, layer, table, or table view. | String |
field_names [field_names,...] | A list (or tuple) of field names. For a single field, you can use a string instead of a list of strings. Use an asterisk (*) instead of a list of fields to access all fields from the input table (raster and BLOB fields are excluded). However, for faster performance and reliable field order, it is recommended that the list of fields be narrowed to only those that are actually needed. Raster and BLOB fields are not supported. Geometry objects are not supported using the SHAPE@ token, but geometry information can be included using other tokens such as SHAPE@XY (tuple of the feature's centroid coordinates), SHAPE@AREA, and SHAPE@LENGTH. Additional information can be accessed using tokens (such as OID@) in place of field names:
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 | An optional expression that limits the records returned. For more information on WHERE clauses and SQL statements, see SQL reference for query expressions used in ArcGIS. (デフォルト値は次のとおりです "") | String |
spatial_reference | The spatial reference of the feature class. When this argument is specified, the feature will be projected (or transformed) from the input's spatial reference. If unspecified, the input feature classes' spatial reference will be used. Valid values for this argument are a SpatialReference object or string equivalent. 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 | Deconstruct a feature into its individual points or vertices. If explode_to_points is set to True, a multipoint feature with five points, for example, is represented by five rows. (デフォルト値は次のとおりです False) | Boolean |
skip_nulls | Control whether records using nulls are skipped. It can be either a Boolean True or False, or a Python function or lambda expression. When set to True, if any of the record's attributes is null (including geometry), the record is skipped. With a False setting, skip_nulls attempts to use all records regardless of nulls. In a NumPy array, a null is represented as a nan (not a number) for floating-point numeric values but not for integers. Skip all records that include a null.
A Python function or lambda expression can be used to allow finer control, including logging the OID values of all records that include a null value. In both examples below, the lambda expression or function is used to identify OIDs that include null records. 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.
メモ:In NumPy arrays, nulls are represented in float types such as nan and in text types such as None. Integer types do not support the concept of null values. (デフォルト値は次のとおりです False) | Variant |
null_value | Replaces null values from the input with a new value. null_value is replaced before skip_nulls is evaluated. Mask all None's in integer fields with a -9999.
Mask None's in integer fields with different values using a dictionary.
注意:Providing a mask such as -9999 allows integer fields containing nulls to be exported to a NumPy array, but be cautious when using these values in any analysis. The results may be inadvertently skewed by the introduced value. (デフォルト値は次のとおりです None) | Integer |
データ タイプ | 説明 |
NumPyArray | A NumPy structured array. |
コードのサンプル
テーブルを 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 を使用して、2 つのフィールドの相関係数を求めます。
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])))