python – 多维数组上的减法运算

我有一份清单.

l = [[1, 2, 8] [8, 2, 7] [7, 2, 5]]

我希望第一个元素为零,然后我需要按列减去值.
解释:

1 2 8
8 2 7
7 2 5

减法为,

0 1 6
0 -6 5
0 -5 3

我希望输出为:

l = [[0, 1, 6], [0, -6, 5], [0, -5, 3]]

如果我有大型列表,这是执行此操作的更快方法?

我正在使用numpy,但我在这里改变,以便易于理解
我的numpy数组对象是

l = [[1  2  8] [8  2  7] [7  2  5]]

最佳答案 使用numpy.insert和numpy.diff:

>>> import numpy as np
>>> a = np.array([[1, 2, 8], [8, 2, 7], [7, 2, 5]])
>>> np.insert(np.diff(a), 0, 0, axis=1)
array([[ 0,  1,  6],
       [ 0, -6,  5],
       [ 0, -5,  3]])
点赞