ESRI提供了从表到阵列再从表向后移动数据的访问。我有一个脚本,从api调用中获取人口普查数据并将其转换为数组,进行一些简单的数学运算,然后,理想情况下,将其输出到表中。计算时,数组不能是rec数组。vstack、hstack或concatenate的组合似乎都没有给出好的结果。我求助于创建单独的一维数组作为recarray,然后在中使用merge函数np.lib.rec函数。合并\u数组。当然还有更好的办法。在
ESRI从TableToNumPyArray返回:
>>> testArray
array([ (41039000100.0, 2628.0, 100.0, 2339.0, 135.0, 18.0, 22.0, 16.0, 25.0, 0.0, 92.0, 0.0, 92.0, 0.0, 92.0, 0.0, 92.0, 6.0, 9.0, 249.0, 90.0, 0.0, 92.0, 1, u'41039000100'),
...
dtype=[('Geo_id', '<f8'), ('TotalUnits', '<f8'), ('MOE_Total', '<f8'), >('Total_1_detached', '<f8'), ('MOE_Total_1_detached', '<f8'), ('Total_1_attached', >'<f8'), ('MOE_Total_1_attached', '<f8'), ('Total_2', '<f8'), ('MOE_Total_2', '<f8'), >('Total_3_or_4', '<f8'), ('MOE_Total_3_or_4', '<f8'), ('Total_5_to_9', '<f8'), >('MOE_Total_5_to_9', '<f8'), ('Total_10_to_19', '<f8'), ('MOE_Total_10_to_19', '<f8'), >('Total_20_to_49', '<f8'), ('MOE_Total_20_to_49', '<f8'), ('Total_50_or_more', '<f8'), >('MOE_Total_50_or_more', '<f8'), ('Total_Mobile_home', '<f8'), ('MOE_Total_Mobile_home', '<f8'), ('Total_Boat_RV_van_etc', '<f8'), ('MOE_Total_Boat_RV_van_etc', '<f8'), >('ObjectID', '<i4'), ('geo_id_t', '<U50')])
我的代码片段看起来像
^{pr2}$我想我更喜欢在构造数组之前合并/连接/堆叠数组。思想?在
您应该能够使用结构化数组(从技术上讲,您没有使用recarrays)来进行“简单的数学运算”。我不确定您是否显示了您想要进行的数学运算,但例如,如果您想:
但不想拥有所有这些独立的数组,您可以简单地对主数组(合并数组)的views进行计算,我们将其称为
^{pr2}$data
:其中}都是一个名为
HHsize
、Tpop
、和{data
的结构化数组中的字段名,这样您就可以相关问题 更多 >
编程相关推荐