Python 删除数据集含有 1 的列内容

假设我们有以下数据集:

data = [
  [0, 1, 2, 3],
  [4, 5, 6, 7],
  [8, 9, 1, 2],
  [3, 4, 5, 6]
]

我们可以使用以下代码删除数据集中含有 1 的列:

# 遍历每一列
for i in range(len(data[0])):
  # 判断该列是否含有 1
  if 1 in [row[i] for row in data]:
    # 如果含有 1,则删除该列
    for row in data:
      del row[i]

最终的数据集将变为:

[
  [0, 2, 3],
  [4, 6, 7],
  [8, 2],
  [3, 4, 5, 6]
]

代码解释:

  1. 遍历每一列:使用 for i in range(len(data[0])) 循环遍历数据集的第一行,得到每一列的索引。
  2. 判断该列是否含有 1:使用 if 1 in [row[i] for row in data] 判断当前列中是否包含数字 1。
  3. 删除该列:如果当前列含有 1,则使用 del row[i] 删除每一行中的第 i 个元素。

注意:

  • 该方法会直接修改原数据集。
  • 如果数据集中有多个数字 1,则会删除所有包含 1 的列。

其他方法:

除了上述代码,还有其他方法可以删除数据集中的列,例如:

  • 使用列表推导式:data = [[x for i, x in enumerate(row) if i not in [1, 2]] for row in data]
  • 使用 NumPy 库:import numpy as np data = np.array(data) data = data[:, [i for i in range(data.shape[1]) if 1 not in data[:, i]]]

选择适合你的方法来删除数据集中的列。

Python 数据集删除含 1 的列:高效解决方案

原文地址: https://www.cveoy.top/t/topic/oiF7 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录