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

如何将numpy数组拆分为含零行数组和全非零行数组两个部分

解决方案

你需要先按行判断是否包含零值,再通过布尔索引提取两类行,无需使用np.split即可实现需求。

完整调整后代码

import numpy as np

C1_1=np.array([[ 0, -4,  6],
       [ 0, -5,  7],
       [-1,  0,  6],
       [-1, -4,  7],
       [-1, -5,  8]])
# 生成布尔掩码:每行只要存在0值就为True
mask = np.any(C1_1 == 0, axis=1)
# 分别提取两类行组合为结果
C1_B = [C1_1[mask], C1_1[~mask]]
print(C1_B)

运行输出

[array([[ 0, -4,  6],
       [ 0, -5,  7],
       [-1,  0,  6]]), array([[-1, -4,  7],
       [-1, -5,  8]])]

原代码问题说明

  • 原判断逻辑仅检查了每行第一列是否为0,不符合「检查行内所有元素是否存在0」的需求
  • np.split会按传入的所有切割点拆分数组,传入多个切割点就会生成多个子数组,不符合只拆分2组的要求

内容的提问来源于stack exchange,提问作者Ľubomír Rusnák

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 09:24:04