【发布时间】:2015-04-21 09:25:47
【问题描述】:
我在理解 numpy 中的 where 函数时遇到了一点问题。 “times”数组包含 GPS 测量存在的离散时期(四舍五入到最接近的秒数)。 “locations”数组包含卫星的纬度、经度和高度的离散值,在“times”时期以 10 秒间隔到 1 秒间隔进行插值。 “tracking”数组包含一个以“times”为单位的每个时期的数组(数组中的数组)。数组有 5 列和 32 行。 32 行对应 GPS 星座的 32 颗卫星。第 0 行对应第 1 颗卫星,第 31 到第 32 颗卫星。这些列包含以下内容(按顺序):卫星是否被跟踪 (0)、L1 是否已锁定 (1)、L2 是否已锁定 (2)、L1 是否意外丢失 (3)、L2 是否意外丢失 (4) 。
我们需要找出所有意外损失并将它们放入一个数组中,以便我们可以将其绘制在地图上。
我们尝试做的是:
i = 0
with np.load(r’folderpath\%i.npz' %i) as oneday_data: #replace folderpath with your directory
times = oneday_data['times']
locations = oneday_data['locations']
tracking = oneday_data['tracking']
A = np.where(tracking[:][:][4] ==1)
这应该给我们所有损失的位置。有了这个索引,就很容易找到正确的位置。但它不断返回无用的数据。
有人可以帮助我们吗?
【问题讨论】:
-
你能用一个小数组
tracking做一个简单的例子吗?你从这个例子中得到了什么,你想从这个例子中得到什么? -
为了扩展上面的评论,不要用文字描述你的数据,而是用代码编写一个小的有代表性的示例示例。例如
times = np.array([1.0, 2.5, 3.0, 4.7]) -
[:][:]的用途是什么?tracking[:][:][4]是有意义的数据吗?