gpt4 book ai didi

python - 在数组元素内执行减法运算后获取多个数组

转载 作者:行者123 更新时间:2023-12-01 02:00:52 25 4
gpt4 key购买 nike

import numpy as np
m = []
k = []
a = np.array([[1,2,3,4,5,6],[50,51,52,40,20,30],[60,71,82,90,45,35]])
for i in range(len(a)):
m.append(a[i, -1:])
for j in range(len(a[i])-1):
n = abs(m[i] - a[i,j])
k.append(n)
k.append(m[i])
print(k)

k 中的预期输出:

[5,4,3,2,1,6],[20,21,22,10,10,30],[25,36,47,55,10,35]

这也是一个 numpy 数组。

但是我得到的输出是

[array([5]), array([4]), array([3]), array([2]), array([1]), array([6]), array([20]), array([21]), array([22]), array([10]), array([10]), array([30]), array([25]), array([36]), array([47]), array([55]), array([10]), array([35])]

如何解决这种情况?

最佳答案

您想要从每个子数组自身中减去最后一列。为什么不使用矢量化方法?您可以通过从其余项目中减去最后一列,然后将column_stack 与最后一列的未更改版本一起进行一次所有减法。另请注意,您需要更改最后一列的尺寸才能从二维数组中减去。为此,我们可以使用广播。

In [71]: np.column_stack((abs(a[:, :-1] - a[:, None, -1]), a[:,-1]))
Out[71]:
array([[ 5, 4, 3, 2, 1, 6],
[20, 21, 22, 10, 10, 30],
[25, 36, 47, 55, 10, 35]])

关于python - 在数组元素内执行减法运算后获取多个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49647836/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com