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

如何查找矩阵中不包含指定数值的对应列

实现方案

核心逻辑非常简单:遍历矩阵的每一列,检查该列的所有元素中是否不存在0.1,符合条件的列就是目标列。


1. 手动计算逻辑(通用)

  • 逐列遍历:从第1列到最后1列依次检查
  • 列内校验:对当前列的所有行元素逐一判断,只要出现1次0.1就排除该列
  • 结果汇总:所有未被排除的列号即为符合要求的结果

以你给出的矩阵为例:

  • 第1列有0.1(行2)→ 排除
  • 第2列有0.1(行2)→ 排除
  • 第3列有0.1(行1)→ 排除
  • 第4列有0.1(行3)→ 排除
  • 第5列有0.1(行3)→ 排除
  • 第6列所有元素是0.7、0.4、0.9,无0.1 → 符合要求

2. Python Numpy 实现

import numpy as np

# 构造矩阵,仅保留数值部分,去掉表头的行号、列号
matrix = np.array([
    [0.4, 0.5, 0.1, 0.3, 0.3, 0.7],
    [0.1, 0.1, 0.8, 0.7, 0.7, 0.4],
    [0.6, 0.2, 0.3, 0.1, 0.1, 0.9]
])

# axis=0表示按列判断,只要列内存在0.1就标记为待排除
mask = ~np.any(matrix == 0.1, axis=0)
# 数组默认从0开始计数,加1匹配需求中从1开始的列号规则
result_columns = np.where(mask)[0] + 1

print(result_columns) # 输出 [6]

3. Python Pandas 实现

import pandas as pd

# 构造DataFrame,列名对应需求里的1~6列号
df = pd.DataFrame({
    1: [0.4, 0.1, 0.6],
    2: [0.5, 0.1, 0.2],
    3: [0.1, 0.8, 0.3],
    4: [0.3, 0.7, 0.1],
    5: [0.3, 0.7, 0.1],
    6: [0.7, 0.4, 0.9]
})

# 筛选所有元素都不等于0.1的列
result = df.columns[~df.isin([0.1]).any()].tolist()
print(result) # 输出 [6]

4. R 实现

# 构造矩阵
matrix <- matrix(
  c(0.4, 0.5, 0.1, 0.3, 0.3, 0.7,
    0.1, 0.1, 0.8, 0.7, 0.7, 0.4,
    0.6, 0.2, 0.3, 0.1, 0.1, 0.9),
  nrow = 3, byrow = TRUE
)

# 查找不含0.1的列,R默认列号从1开始,直接匹配需求规则
result <- which(!apply(matrix == 0.1, 2, any))
print(result) # 输出 6

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 11:27:04