python - 从两个数组创建 numpy 数组,这样备用索引包含来自不同数组的元素

标签 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])

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

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

我意识到我可以使用两个 for 循环来实现这一点,我可以在其中将 arr1arr2 的元素存储到备用索引(arr3).但是,在我的实际工作中,我将处理巨大的数组(arr1arr2),我想确保我使用的是一种高效快速的方法来实现此功能(即创建 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]

关于python - 从两个数组创建 numpy 数组,这样备用索引包含来自不同数组的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50340520/

相关文章:

c++ - 在 float 组上使用 mpf_set_ui 停止输出 (GMP c++)

python - 在用 `NumPy` 的 `numba` 装饰的函数内创建 `@jit(nopython=True)` 数组?

Python 卡在 Selenium webdriver.Chrome()

arrays - 当没有频繁值时如何处理数组中的频繁值

Python:UnicodeEncodeError: 'ascii' 编解码器无法对位置 78 中的字符 u'\xf1' 进行编码:序号不在范围内(128)

php - 稳定的 uasort - 为什么顺序被颠倒了?

python - 使用 ctypes 从 C 结构数组到 NumPy 数组的高效转换

python numpy arange 意外结果

python - 如何检查双端队列是否为空

python - 为什么不能在同一代码中使用函数 'pack' 和 'grid