如何将numpy数组按每3行一组拆分生成两个目标数组
实现方案
核心思路是通过numpy的重塑操作先拆分出分组维度,再按索引筛选对应分组后合并即可。
完整实现代码
import numpy as np # 定义原始数组 A = np.array([ [0,1,2,3], [2,3,4,5], [1,2,3,4], [1,1,1,1], [2,2,2,2], [3,3,3,3], [0,1,2,3], [2,3,4,5], [1,2,3,4], [10,10,10,10], [20,20,20,20], [30,30,30,30] ]) # 按每3行一组重塑数组,第一个维度为分组数 grouped_A = A.reshape(-1, 3, A.shape[1]) # 筛选奇数组(用户标注的第1、3组对应Python索引0、2,即步长为2从0开始取),再合并为二维数组 B = grouped_A[::2].reshape(-1, A.shape[1]) # 筛选偶数组(用户标注的第2、4组对应Python索引1、3,即步长为2从1开始取),再合并为二维数组 C = grouped_A[1::2].reshape(-1, A.shape[1]) # 验证结果 print("B数组:") print(B) print("\nC数组:") print(C)
补充说明
如果原始数组的总行数不是3的整数倍,可先根据需求对末尾不足3行的部分做截断或填充后再执行重塑操作。
内容的提问来源于stack exchange,提问作者relaxon
相关产品推荐
相关产品推荐

