gpt4 book ai didi

python - 在 numpy 中将数组拼接在一起

转载 作者:行者123 更新时间:2023-12-01 07:03:08 25 4
gpt4 key购买 nike

是否有一种简单的方法可以在 numpy 中将数组拼接在一起,以便一个数组中的第一项与另一个数组中的第三项相加?例如:

a = np.array((1,2,3))
b = np.array((2,3,4))

在这种情况下,我希望结果为 (1,2,5,3,4)。我可以使用 for 循环来做到这一点,但我想知道是否也有一种简单的方法可以使用 numpy 来做到这一点。谢谢!

最佳答案

假设您只想对连续数组的最后一项和第一项求和:

def stitch(arrs, dtype=None):
if len(arrs) < 2:
raise ValueError("Not supported")
res = np.empty(sum(x.size - 1 for x in arrs) + 1, dtype=dtype)
idx = 0
res[0] = arrs[0][0]
for i in range(len(arrs) - 1):
a, b = arrs[i], arrs[i + 1]
off = a.size - 1
res[idx+1:idx+off] = a[1:-1]
res[idx+off] = a[-1] + b[0]
idx += off
res[idx+1:] = arrs[-1][1:]
return res

与其他答案不同,这个答案避免了不必要的列表转换/副本和添加。 :) 请注意,对于足够小的数组,@Torben 的答案可能仍然更快。

关于python - 在 numpy 中将数组拼接在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58552426/

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