回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我为纬度(<code>Xpos</code>)和经度(<code>Ypos</code>)用维度(<strong><code>125,800,000</code></strong>)屏蔽了数组</p>
<p>我想计算数组中的经纬度差。这里是数组<code>Xpos</code>(<code>Ypos</code>类似)</p>
<pre><code> masked_array( data = [ [-2.0551843643188477, -2.637551784515381, -2.720881223678589, ..., 2.2812530994415283, 2.281250476837158, 2.281254768371582 ],
[-2.3242127895355225, -2.804257869720459, -2.8825504779815674, ..., 2.2812530994415283, 2.281250476837158, 2.281254768371582 ],
[-2.073770523071289, -2.6198980808258057, -2.708889961242676, ..., 2.2812530994415283, 2.281250476837158, 2.281254768371582 ],
...,
[-3.517531633377075, -2.908338785171509, -2.9069409370422363, ..., 2.2812530994415283, 2.281250476837158, 2.281254768371582 ],
[-3.688690662384033, -3.0086288452148438, -3.010164260864258, ..., 2.2812530994415283, 2.281250476837158, 2.281254768371582 ],
[-3.520817518234253, -2.943941116333008, -2.941941738128662, ..., 2.2812530994415283, 2.281250476837158, 2.281254768371582 ]
],
mask = [ [ False, False, False, ..., False, False, False ],
[ False, False, False, ..., False, False, False],
[ False, False, False, ..., False, False, False],
...,
[ False, False, False, ..., False, False, False],
[ False, False, False, ..., False, False, False],
[ False, False, False, ..., False, False, False]
],
fill_value = 1e+20,
dtype = float32
)
</code></pre>
<hr/>
<p>这是我的代码,它可以工作,但需要很长的时间来计算</p>
<pre><code>Dist= np.zeros((len(XposApr),len(XposApr[0])))
DiffLon=np.zeros((len(XposApr),len(XposApr[0])))
DiffLat=np.zeros((len(XposApr),len(XposApr[0])))
for i in range (1,len(XposApr),12):
for j in range (0,len(XposApr[0])):
DiffLon[i][j]=(XposApr[i][j]-XposApr[i-1][j])
DiffLat[i][j]=(YposApr[i][j]-YposApr[i-1][j])
</code></pre>
<p>我真的不知道如何制作著名的单行线,这是我尝试过的,但不起作用:</p>
<pre><code>DistLon = [XposApr[i][j]-XposApr[i-1][j] for i in enumerate (XposApr) and j in enumerate (XposApr[0])]
</code></pre>
<p>有没有可能生成一个线性或另一个代码,从而使计算速度大大加快?<br/>
提前谢谢</p>