如何用Numpy内置函数将一维数组交错转换为二维数组?
将一维Numpy数组转换为交错二维数组的实现方案
Numpy没有专门针对该需求的单一内置函数,但可以通过原生操作组合快速实现目标效果,以下是两种高效简洁的方法:
方法一:利用reshape的列优先填充
通过指定order='F'(列优先)参数,让reshape按列顺序重新排列数组元素,直接得到交错结构:
import numpy as np arr = np.array([1,2,3,4,5,6]) interleaved_arr = arr.reshape(2, -1, order='F') # 输出:array([[1, 3, 5], # [2, 4, 6]])
这里-1表示让Numpy自动计算该维度的长度,前提是原数组长度能被2整除。
方法二:切片拆分后堆叠
通过步长为2的切片分别提取奇偶位置的元素,再组合成二维数组,逻辑更直观:
import numpy as np arr = np.array([1,2,3,4,5,6]) interleaved_arr = np.array([arr[::2], arr[1::2]]) # 输出同上
arr[::2]选取索引0、2、4...的元素,arr[1::2]选取索引1、3、5...的元素,最后用np.array()将两个一维数组合并为二维数组。
两种方法均基于Numpy原生功能,无需额外依赖,处理大数组时效率也能得到保障。
内容的提问来源于stack exchange,提问作者jack geraghty
相关产品推荐
相关产品推荐

