从两个数组创建numpy数组,以便备用索引包含来自不同数组的元素

Com*_*ner 1 python arrays numpy

我正在寻找一种以以下方式在python中合并两个numpy数组的快速方法。例如,如果我有以下两个数组,

arr1 = np.array([0.0, 1.0, 11.0, 111.0])
arr2 = np.array([0.5, 1.5, 11.5, 111.5])
Run Code Online (Sandbox Code Playgroud)

那么我希望合并后的数组(例如arr3)包含arr1arr2在交替索引中的元素。喜欢,

arr3 = np.array([0.0, 0.5, 1.0, 1.5, 11.0, 11.5, 111.0, 111.5]) 
Run Code Online (Sandbox Code Playgroud)

我意识到我可以使用两个for循环来实现这一点,在其中我可以将arr1和的元素存储在arr2(of arr3)的备用索引中。但是,在我的实际工作中,我将处理庞大的数组(arr1arr2),并且我想确保自己使用的是高效且快速的方法来实现此功能(即创建arr3

我将不胜感激任何帮助。

jpp*_*jpp 5

这是一种方式。基于追加或基于堆栈的方法效率低下,因为未预先分配内存。numpy当提前确定内存分配时,对数组的操作效果最佳。

arr1 = np.array([0.0, 1.0, 11.0, 111.0])
arr2 = np.array([0.5, 1.5, 11.5, 111.5])

arr3 = np.zeros(arr1.shape[0] + arr2.shape[0], dtype=arr1.dtype)
arr3[::2] = arr1
arr3[1::2] = arr2

print(arr3)

[   0.     0.5    1.     1.5   11.    11.5  111.   111.5]
Run Code Online (Sandbox Code Playgroud)