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)包含arr1和arr2在交替索引中的元素。喜欢,
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)的备用索引中。但是,在我的实际工作中,我将处理庞大的数组(arr1和arr2),并且我想确保自己使用的是高效且快速的方法来实现此功能(即创建arr3)
我将不胜感激任何帮助。
这是一种方式。基于追加或基于堆栈的方法效率低下,因为未预先分配内存。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)