如何将1d numpy数组转换为2d numpy数组

时间:2017-11-24 22:13:20

标签: numpy 2d

我使用了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]]

我尝试重塑,但那并没有奏效。 有人能帮助我吗?

2 个答案:

答案 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])