python - 如何删除二维数组中具有特定值的行并修改列值?

标签 python arrays python-3.x numpy multidimensional-array

举一个非常简单的例子来说明我需要做什么,我有一个二维数组:

array([[0, 4],[2, 3],[4, 1],[0, 8],[3, 2],[4, 5],[6, 1],[0, 3],[1, 7],[2, 9]])

第一列是时间,另一列是距离。具体来说,我所拥有的是[时间,距离]

对于我的最终数组,我需要删除每个 time=0 并延续时间。这是我的最终数组应该是:

array([[0, 4],[2, 3],[4, 1],[7, 2],[8, 5],[10, 1],[11, 7],[12, 9]])

在这种特殊情况下,只有 [0, 8][0, 3] 被删除,因为它们的时间=0。

此外,鉴于 4+3=7(因为之前的时间是 4)。鉴于 4+4=8,之前的 [4, 5] 变为 [8, 5] 也是如此。之前的 也是如此鉴于 4+6=10,>[6, 1] 变为 [10, 1]

鉴于 10+1=11(因为之前的时间是 10)。 鉴于 10+2=12,之前的 [2, 9] 变为 [12, 9] 也是如此。

我只是放置了一小段数组,因此我需要一个 Python 代码来完成我刚才解释的操作。

最佳答案

我想出了这个简短的代码,没有使用任何外部库:

array = [[0, 4],[2, 3],[4, 1],[0, 8],[3, 2],[4, 5],[6, 1],[0, 3],[1, 7],[2, 9]]
temp = 0
out = [array[0]]
for i in range(1,len(array)):
    if array[i][0] != 0:
        array[i][0] += temp
        out.append(array[i])
    else:
        temp = array[i-1][0]
print(out)

产生:

[out]: [[0, 4], [2, 3], [4, 1], [7, 2], [8, 5], [10, 1], [11, 7], [12, 9]]

关于python - 如何删除二维数组中具有特定值的行并修改列值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50595150/

相关文章:

python - FastAPI SQLAlchemy 无法将字典更新序列元素 #0 转换为序列

ruby - Ruby 中 map 和 collect 的区别?

arrays - 数组各部分的 Octave 平均值

python - 如何限制运行脚本的权限?

python - 如何在 Windows 命令行中将运行 Python 的命令制作为脚本?

python - 在 Python tkinter 的 Tk 类中使用 Frame 类

python - Pandas - 展平一列字典列表

javascript - 解析json数组流

python - 为什么 Zappa 部署缺少虚拟环境中存在的所有/大多数包?

python - 如何读取包含分组数据的 CSV,其中每个组都有不同的列?