概要
テーブルを 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 配列に変換するには、代わりに FeatureClassToNumPyArray 関数を使用します。
構文
TableToNumPyArray (in_table, field_names, {where_clause}, {skip_nulls}, {null_value})
パラメーター | 説明 | データ タイプ |
in_table | フィーチャクラス、レイヤー、テーブル、またはテーブル ビュー。 | String |
field_names [field_names,...] | フィールド名のリスト (またはタプル)。 単一フィールドの場合、文字列のリストの代わりに文字列を使用できます。 入力テーブルのすべてのフィールド (ラスターおよび BLOB フィールドは除きます) にアクセスする場合、フィールドのリストの代わりにアスタリスク (*) を使用します。 ただし、パフォーマンスとフィールドの順序の信頼性を高めるために、フィールドのリストは実際に必要なフィールドのみに絞り込むことをお勧めします。 ラスターおよび BLOB フィールドはサポートされていません。 SHAPE@ トークンを使用したジオメトリ オブジェクトはサポートされていませんが、ジオメトリ情報は、SHAPE@XY (フィーチャの重心座標のタプル)、SHAPE@AREA、および SHAPE@LENGTH などの他のトークンを使用して含めることができます。 その他の情報には、フィールド名の代わりにトークン (OID@ など) を使用してアクセスできます。
(デフォルト値は次のとおりです *) | String |
where_clause | 返されるレコードを制限するオプションの条件式。 WHERE 句と SQL ステートメントの詳細については、「クエリ式の作成」をご参照ください。 (デフォルト値は次のとおりです "") | String |
skip_nulls | NULL を使用するレコードをスキップするかどうかを制御します。 ブール値の True または False、または Python 関数または lambda 式を指定できます。 True に設定した場合、レコードの属性に NULL が含まれている場合 (ジオメトリを含む)、そのレコードはスキップされます。 False 設定では、skip_nulls は NULL に関係なくすべてのレコードを使用しようとします。 NumPy 配列では、NULL は浮動小数値の場合 NaN (Not a Number) と表現されますが、整数の場合は表現できません。 以下に、NULL を含むすべてのレコードをスキップする例を示します。
Python 関数または lambda 式を使用すると、NULL 値を含むすべてのレコードの OID 値を記録するなど、より細かく制御することができます。 以下の 2 つの例では、NULL レコードを含む OID を特定するために lambda 式または関数が使用されています。 関数を使用して、NULL のためにスキップされるすべてのレコードを取得します。
ラムダ式を使用して、NULL のためにスキップされるすべてのレコードを取得します。
(デフォルト値は次のとおりです False) | Variant |
null_value | 入力の NULL 値を新しい値に置き換えます。 null_value は、skip_nulls が評価される前に置き換えられます。 Mask None values in integer fields with a -9999.
Mask None values in integer fields with different values using a dictionary.
(デフォルト値は次のとおりです None) | Integer |
戻り値
データ タイプ | 説明 |
NumPyArray | NumPy 構造化配列。 |
コードのサンプル
TableToNumPyArray の例 1
テーブルを 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 の例 2
TableToNumPyArray を使用して、2 つのフィールドの相関係数を求めます。
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])))