如何仅通过列python减去数组?
我有二维数组
[1, 5],
[2, 7],
[3, 9]
我想结果数组
[1, 5],
[2, 2],
[3, 2]
这是通过仅减去列并保留行作为其实现的。(7-5) (9-7)
我在下面尝试了这个,但我无法获得正确的输出
import numpy as np
timeline = np.array([[1,5],
[2,7],
[3,9]])
def non_adjacent_diff(row):
not_zero_index = np.where(row != 0)
diff = row[not_zero_index][1:] - row[not_zero_index][:-1]
np.put(row, not_zero_index[0][1:], diff)
return row
np.apply_along_axis(non_adjacent_diff, 1, timeline)
print(timeline)
回答
你可以试试这个解决方案:
timeline[1:,-1] = np.diff(timeline[:,-1], axis=0)