举一个非常简单的例子来说明我需要做什么,我有一个二维数组:
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/