You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确将numpy数组组拆分为多个独立数组?

拆分Numpy数组组为独立数组的正确方法

你现在的需求是把包含两个二维Numpy数组的列表array1,拆分成所有行都作为独立数组的集合对吧?先看看你之前代码的问题:

你用了array2.append(a),而np.array_split(x, len(x))返回的是一个包含多个子数组的列表,所以append会把这个整个列表作为一个元素加到array2里,最终array2就变成了[拆分后的第一个数组列表, 拆分后的第二个数组列表],长度自然还是2。

要实现你的需求,我们需要把拆分后的每个子数组单独添加到array2中,而不是添加整个列表。这里有几种简洁的实现方式:

方法一:使用extend替代append

import numpy as np

array2 = []
for x in array1:
    # 将当前二维数组按行拆分为单个数组
    split_rows = np.array_split(x, len(x))
    # 把拆分后的所有数组逐个添加到array2中
    array2.extend(split_rows)

方法二:嵌套循环直接遍历行

如果不需要array_split,也可以直接遍历每个二维数组的行,保持和你预期一致的二维形状(每个子数组是(1, 列数)的形式):

array2 = []
for x in array1:
    for row in x:
        # 把一维的行转成二维数组(和你之前拆分的格式一致)
        array2.append(row.reshape(1, -1))

方法三:列表推导式(更简洁)

用一行代码就能完成:

array2 = [row.reshape(1, -1) for arr in array1 for row in arr]

执行完以上任意一种方法后,len(array2)就会等于两个二维数组的总行数,每个元素都是独立的单个行数组啦。

内容的提问来源于stack exchange,提问作者Muugii

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 22:27:50