【发布时间】:2013-02-27 17:55:22
【问题描述】:
是否有一种有效的方法可以在不使用循环的情况下从未排序的坐标点(即并非所有的经纬度和/或纬度都升序或降序)创建二维数组?
示例数据
lats = np.array([45.5,45.5,45.5,65.3,65.3,65.3,43.2,43.2,43.2,65.3])
lons = np.array([102.5,5.5,116.2,102.5,5.5,116.2,102.5,5.5,116.2,100])
vals = np.array([3,4,5,6,7,7,9,1,0,4])
示例输出
每列代表一个唯一的经度(102.5、5.5、116.2 和 100),每列代表一个唯一的纬度(45.5、65.3 和 43.2)。
([ 3, 4, 5, NaN],
[ 6, 7, 7, 4],
[ 9, 1, 0, NaN])
不过,这并不是那么简单,因为我不一定知道每个 lon 或 lat 有多少个重复项,这决定了数组的形状。
更新:
我的问题的数据排列不正确。我现在已经安排好了,所以它们都是唯一的对,还有一个额外的数据点来演示当存在 NaN 时应该如何安排数据。
【问题讨论】:
-
什么决定了输出数组的大小?
lats和lons中非重复值的数量? -
没错……我想:)
-
您能用文字解释使示例输出所需答案的规范吗?当 100 不是
vals中的值时,指示应将 100 放在输出中的逻辑是什么?为什么会有? -
那只是一个错误,我很抱歉。它应该是我没有放入值数组的一个附加值。现在更正。