如何移除NumPy二维数组中包含-1.0达2次及以上的行
解决方案
先把你的列表转换成NumPy数组,再按以下步骤处理:
- 导入NumPy库:
import numpy as np
- 定义原始数据并转为NumPy数组:
data = [[1.1, 1.2, 1.3, 1.4],[2.1, 2.2, 2.3, -1.0],[-1.0, 3.2, 3.3, -1.0],[-1.0, -1.0, -1.0, -1.0]] np_data = np.array(data)
- 统计每行中
-1.0的出现次数,筛选出次数小于2的行:
# 计算每行里-1.0的数量 neg1_count = (np_data == -1.0).sum(axis=1) # 保留数量不足2的行 filtered_data = np_data[neg1_count < 2]
- 查看结果:
print(filtered_data) # 输出: # [[1.1 1.2 1.3 1.4] # [2.1 2.2 2.3 -1.]]
原理说明
np_data == -1.0生成布尔数组,True对应值为-1.0的位置.sum(axis=1)按行求和(布尔值True算1,False算0),得到每行-1.0的个数- 用布尔索引
neg1_count < 2直接提取符合条件的行
内容的提问来源于stack exchange,提问作者Vyralator
相关产品推荐
相关产品推荐

