【问题标题】:looping through two sets of data in Python在 Python 中循环遍历两组数据
【发布时间】:2019-09-18 16:45:17
【问题描述】:

我有两组数据,一组用于雷达,一组用于激光雷达。这些文件在 csv 中,我已将数据添加到名为雷达和激光雷达的空列表中。数据为 600x600。每行数据都在一个列表中。所以每行 600 个值(因此每个列表)。 雷达文件告诉我陆地岛屿在海中的位置,因此任何大于 150 的值都将是陆地 激光雷达会告诉我土地的高度。 所以首先我使用了这段代码:


for i in range(len(radar)):
    for j in range(len(radar[i])):
        if radar [i][j] > 150:
            radar [i][j] = 'land'
        else:
            radar [i][j] = 'sea'

我现在需要获取所有归类为土地(或土地>100)的区域的高度值,但不知道如何同时检查土地然后找到它的价值。有什么想法吗?

【问题讨论】:

  • so radar[i][j] 最初包含高度值?
  • 没有雷达检查存在的物体类型(海洋或陆地)。如果数据中的值超过 150,则它所代表的像素可以归类为陆地,如果低于 150,则该像素为海洋。
  • 那么这个数值 (>150) 是什么意思?它代表什么?
  • 不知道。小册子只是说价值超过 150 的将是土地。也许与颜色或其他东西有关。这只是一个猜测(数字范围从 0 到 255)
  • 啊,我错过了这条线The lidar will tell me the height of the land。所以lidar[i][j] 包含高度值,但是您将如何处理高度值?你应该把它们分配到某个地方吗?

标签: python python-3.x loops if-statement nested


【解决方案1】:

假设雷达和激光雷达具有相同的方向(相同的大小和相同的访问),那么您可以使用相同的ij 访问lidar[i][j],一旦您确定雷达是您需要的东西,以获得该像素的相应激光雷达测量值。所以在下面我制作了一个结果列表,如果我为所有土地案例添加了一个 (i, j, height) 元组。

results = []

for i in range(len(radar)):
    for j in range(len(radar[i])):
        if radar[i][j] > 150:
            radar[i][j] = 'land'
            results.append((i, j, lidar[i][j]))
        else:
            radar [i][j] = 'sea'

然后您可以根据该结果进行计算,或者您可以复制土地矩阵,或者您想在此之后进行计算,但是您应该能够访问上面的高度,这是您的主要问题是.

【讨论】:

  • 然后给出:TypeError: append() 只接受一个参数(给定 3 个)
  • 您是否删除了双括号? (( ))
  • 我的错。编写代码时总会忘记一些小细节。谢谢老兄。
  • 没问题,如果这解决了您的问题,请点击我的答案旁边的复选标记,如果没有让我知道。
猜你喜欢
  • 2017-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-02
  • 1970-01-01
相关资源
最近更新 更多