Python Numpy:np.cumsum 但是减法,从单个值中减去所有数组值,-=
Python Numpy: np.cumsum but subtraction, subtract all array values from single value, -=
我想做一些类似 cumsum 的事情,但是有减法。我需要用矢量化来做到这一点,因为我的数据集长度实际上是 100,000 而不是 3。
我有两个数组:
a = np.array([-7.021, -1.322, 3.07])
b = np.array([[-1.592, -1.495, -1.415, -1.363, -0.408, -0.36, -0.308],
[-0.287, -0.249, -0.226, -0.206, -0.197, -0.165, -0.075],
[-0.389, -0.237, 0.144, 0.198, 0.539, 0.921, 0.932]])
我想从数组 A 中减去数组 B 的每一行 值。对于上面的示例,答案如下喜欢(如果在手动数学中出现错字,我们深表歉意):
result = np.array([[-5.429, 3.934, 2.519, 1.156, 0.748, -0.388, 0.08 ],
[-1.035, 0.786, 0.56, 0.354, 0.157, 0.008, 0.083],
[3.459, 3.696, 3.552, 3.354, 2.815, 1.894, 0.962]])
我已尝试使用以下指标进行澄清:
results = np.array([[a[0] - b[0][0], results[0][0] - b[0][1], results[0][1] - b[0][2] ...],
[a[1] - b[1][0], results[1][0] - b[1][1], results[1][1] - b[1][2] ...],
[a[2] - b[2][0], results[2][0] - b[2][1], results[2][1] - b[2][2] ...]])
你可以运行:
result = a.reshape(-1, 1) - b.cumsum(axis=1)
结果是:
[[-5.429 -3.934 -2.519 -1.156 -0.748 -0.388 -0.08 ]
[-1.035 -0.786 -0.56 -0.354 -0.157 0.008 0.083]
[ 3.459 3.696 3.552 3.354 2.815 1.894 0.962]]
a.reshape(-1, 1)
将原始(1 行)向量更改为 1 列
大批。然后你从 b.
中减去每行的累计和
我想做一些类似 cumsum 的事情,但是有减法。我需要用矢量化来做到这一点,因为我的数据集长度实际上是 100,000 而不是 3。
我有两个数组:
a = np.array([-7.021, -1.322, 3.07])
b = np.array([[-1.592, -1.495, -1.415, -1.363, -0.408, -0.36, -0.308],
[-0.287, -0.249, -0.226, -0.206, -0.197, -0.165, -0.075],
[-0.389, -0.237, 0.144, 0.198, 0.539, 0.921, 0.932]])
我想从数组 A 中减去数组 B 的每一行 值。对于上面的示例,答案如下喜欢(如果在手动数学中出现错字,我们深表歉意):
result = np.array([[-5.429, 3.934, 2.519, 1.156, 0.748, -0.388, 0.08 ],
[-1.035, 0.786, 0.56, 0.354, 0.157, 0.008, 0.083],
[3.459, 3.696, 3.552, 3.354, 2.815, 1.894, 0.962]])
我已尝试使用以下指标进行澄清:
results = np.array([[a[0] - b[0][0], results[0][0] - b[0][1], results[0][1] - b[0][2] ...],
[a[1] - b[1][0], results[1][0] - b[1][1], results[1][1] - b[1][2] ...],
[a[2] - b[2][0], results[2][0] - b[2][1], results[2][1] - b[2][2] ...]])
你可以运行:
result = a.reshape(-1, 1) - b.cumsum(axis=1)
结果是:
[[-5.429 -3.934 -2.519 -1.156 -0.748 -0.388 -0.08 ]
[-1.035 -0.786 -0.56 -0.354 -0.157 0.008 0.083]
[ 3.459 3.696 3.552 3.354 2.815 1.894 0.962]]
a.reshape(-1, 1)
将原始(1 行)向量更改为 1 列
大批。然后你从 b.