gpt4 book ai didi

python - 如何堆叠两个numpy数组的每n行

转载 作者:行者123 更新时间:2023-12-04 14:57:06 25 4
gpt4 key购买 nike

我有 2 个 numpy 数组,我想像这样堆叠它们:

    arr1 = [[1,2,3]
[4,5,6]
[7,8,9]
[10,11,12]]
arr2 = [[a,b,c]
[d,e,f]
[g,h,i]
[j,k,l]]

SomeStackFunction(a,b) # need this funtion

output_array = [[1,2,3]
[4,5,6]
[a,b,c]
[d,e,f]
[7,8,9]
[10,11,12]
[g,h,i]
[j,k,l]]

最有效的方法是什么?我有相当大的数组,实际上我想每 4 行堆叠一次。

最佳答案

如果你会使用 numpy,我有一个有趣的给你:

arr1 = np.asarray([[0,1,2],[3,4,5],[6,7,8],[9,10,11]])
arr2 = np.asarray([[0,10,20],[30,40,50],[60,70,80],[90,100,110]])

tmp_arr1 = arr1.reshape((arr1.shape[0]//2, -1))
tmp_arr2 = arr2.reshape((arr2.shape[0]//2, -1))

out = np.stack((tmp_arr1, tmp_arr2), axis=1).reshape((2*arr1.shape[0],arr1.shape[1]))

输出:

>>> print(out)
[[ 0 1 2]
[ 3 4 5]
[ 0 10 20]
[ 30 40 50]
[ 6 7 8]
[ 9 10 11]
[ 60 70 80]
[ 90 100 110]]

这种方法可能看起来相当困惑,但仅使用 numpy 函数提供了非常好的性能。对于您的问题来说,这可能有点矫枉过正,但很高兴知道它可以通过一点巧妙的方式来完成。

关于python - 如何堆叠两个numpy数组的每n行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67723880/

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