サマリー
テーブルを 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 ステートメントの詳細については、「ArcGIS で使用されるクエリ式への 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 のためにスキップされるすべてのレコードを取得します。 注意:NumPy 配列の場合、NULL は float タイプでは nan、テキスト タイプでは None などと表現されます。 整数タイプは、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.
注意: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 を使用して、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])))