2017-11-24 3 views
0

FeatureClassToNumPyArrayを使用しました。この関数は、FeatureClass(テーブル)からnumpy配列を作成します。 最初のパラメータは、テーブルの名前を指定したものです。その他のパラメータは、配列に「インポート」された列名です。1d numpy配列を2d numpy配列に変換する方法

arr = arcpy.da.FeatureClassToNumPyArray("lyr_fixpoints", ('land_type', 'asset_cat', 'name', 'maintenance'), null_value=-999) 
print arr 

と、次の1次元配列を取得:

[(5, 0, 380, 3) (1, 4, 369, 3) (5, 0, 421, 2) (0, 7, 425, 1)] 

を今私は2次元配列が私の更なる操作のために非常に適しているため、この形式の2次元配列にこの配列を変換したいです。

[[5 0 380 3] [1 4 369 3] [5 0 421 2] [0 7 425 1]] 

私は変形してみましたが、動作しませんでした。 誰かが私を助けることができますか?

答えて

0

最初の配列が既に2Dであるようです。行を分割する位置を示すためにかっこを入れるだけの場合は、次のようにしてください。

は動作するはずです。そうでない場合は、arrが本当にnumpy配列であることを確認してください。あなたがわからない場合は、

arr = np.array(arr) 
arr.reshape(4, 4) 
+0

私は両方のステートメントを試しましたが、このエラーメッセージが表示されました:ValueError:新しいアレイの合計サイズは変更しないでください。 arr.ndimの出力が1でlen(arr)が4であるため、私の最初の配列は1dだと思います。 – scs

+0

arr.ndimが1であることが混乱しています。 'a = np.array([(5、0) 、380,3)、(1,4,369,3)、(5,0,421,2)、(0,7,425,1)])とa.ndimは2であった。また、4つの要素がリストであり、それぞれが4つの長さであるため、len(arr)は4になります。 – jufer002

0

私はここで私の問題の解決策を見つけました。このコードは、私の1d配列(featureclasstonumpyarrayから)を2次元配列に変換します。

arr = np.array([[x for x in y] for y in arr]) 
関連する問題