Python 数据集删除含 1 的列:高效解决方案
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]
]
代码解释:
- 遍历每一列:使用
for i in range(len(data[0]))循环遍历数据集的第一行,得到每一列的索引。 - 判断该列是否含有 1:使用
if 1 in [row[i] for row in data]判断当前列中是否包含数字 1。 - 删除该列:如果当前列含有 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]]]
选择适合你的方法来删除数据集中的列。
原文地址: https://www.cveoy.top/t/topic/oiF7 著作权归作者所有。请勿转载和采集!