Python将二维numpy.ndarray拆分为多个独立二维数组
拆分任意行数的二维NumPy数组为单行二维数组集合
如果你有一个任意行数的二维NumPy数组,需要将其拆分为多个独立的单行二维数组(而非一维数组),可以用以下两种简单方法实现:
方法1:使用np.split直接拆分
利用NumPy的split函数,沿着行轴(axis=0)按原数组的行数拆分,直接得到所有单行二维数组的列表:
import numpy as np # 示例输入数组(行数可任意) original_arr = np.array([[1.4600e-01, 2.9575e+00, 6.1580e+02], [5.8600e-01, 4.5070e+00, 8.7480e+02]]) # 按行拆分为多个单行二维数组 split_result = np.split(original_arr, original_arr.shape[0], axis=0) # 输出每个拆分后的数组 for sub_arr in split_result: print(sub_arr) print()
执行后输出:
[[0.146 2.9575 615.8]] [[0.586 4.507 874.8]]
方法2:循环遍历并转换为二维结构
如果需要更灵活的处理,可以遍历原数组的每一行,再将一维的行数据转换为二维结构:
split_result = [] for row in original_arr: # 将一维行转为(1, 列数)的二维数组 split_result.append(row.reshape(1, -1))
这里reshape(1, -1)会自动匹配原数组的列数,保证每个子数组都是二维结构。
两种方法得到的每个子数组形状均为(1, N)(N为原数组列数),完全符合需求。
内容的提问来源于stack exchange,提问作者Dila
相关产品推荐
相关产品推荐

