我使用了FeatureClassToNumPyArray。此函数从FeatureClass(表)创建一个numpy数组。 第一个参数指定了表的名称。其他参数是"导入"的列名。进入数组。
arr = arcpy.da.FeatureClassToNumPyArray("lyr_fixpoints", ('land_type', 'asset_cat', 'name', 'maintenance'), null_value=-999)
print arr
并获得以下1d数组:
[(5, 0, 380, 3) (1, 4, 369, 3) (5, 0, 421, 2) (0, 7, 425, 1)]
现在我想将此数组转换为此表单的二维数组,因为二维数组非常适合我的进一步操作。
[[5 0 380 3] [1 4 369 3] [5 0 421 2] [0 7 425 1]]
我尝试重塑,但那并没有奏效。 有人能帮助我吗?
答案 0 :(得分:0)
看起来第一个阵列已经是2D了!如果你只是在括号中显示你想要分割行的位置,那么这就是:
arr.reshape(4, 4)
应该有效。如果没有,请确保arr确实是一个numpy数组。如果您不确定可以使用:
arr = np.array(arr)
arr.reshape(4, 4)
答案 1 :(得分:0)
我现在找到了解决问题的方法。此代码将我的1d数组(从featureclasstonumpyarray)转换为2d数组。
arr = np.array([[x for x in y] for y in arr])