Python 删除tflearn中的列以生成奇怪的输出

Python 删除tflearn中的列以生成奇怪的输出,python,csv,tensorflow,tflearn,Python,Csv,Tensorflow,Tflearn,我正在使用tflearn并使用以下代码加载我的csv文件 数据,标签=加载_csv('/home/eric/Documents/Speed Dating data.csv', 目标列=0,分类标签=False) 这是我的csv文件的一个片段(还有很多列) 我想删除一个特定的列。例如,假设我删除了第1列,然后打印出第1列到第5列的数据 def preprocess(cols_del): data, labels = load_csv('/home/eric/Documents/Speed Dat

我正在使用
tflearn
并使用以下代码加载我的csv文件

数据,标签=加载_csv('/home/eric/Documents/Speed Dating data.csv', 目标列=0,分类标签=False)

这是我的csv文件的一个片段(还有很多列)

我想删除一个特定的列。例如,假设我删除了第1列,然后打印出第1列到第5列的数据

def preprocess(cols_del):
data, labels = load_csv('/home/eric/Documents/Speed Dating Data.csv',
                        target_column=0, categorical_labels=False)

for col_del in sorted(cols_del):
    [data.pop(col_del) for position in data]

for i in range(20):
    print(data[i][0:5])

def main(_):
    delete = [0]
    preprocess(delete)
这就是结果

['9', '1', '18', '2', '11']
['9', '1', '18', '2', '11']
['9', '1', '18', '2', '11']
['9', '1', '18', '2', '11']
['9', '1', '18', '2', '11']
['9', '1', '18', '2', '11']
['9', '1', '18', '2', '11']
['9', '1', '18', '2', '11']
['9', '1', '18', '2', '11']
['9', '1', '18', '2', '11']
['9', '1', '18', '2', '11']
['10', '1', '20', '2', '11']
['10', '1', '20', '2', '11']
['10', '1', '20', '2', '11']
['10', '1', '20', '2', '11']
['10', '1', '20', '2', '11']
['10', '1', '20', '2', '11']
['10', '1', '20', '2', '11']
['10', '1', '20', '2', '11']
['10', '1', '20', '2', '11']
数据显然不同。发生了什么事?是否删除行而不是列?如何在不更改任何其他列的情况下完全删除整个列


另外,我知道这是一个单独的问题,但是如果我在loadcsv函数中使用
n_类
,我会怎么做?这是我的CSV中的列数吗?

发生的事情是,行
[data.pop(col_del)代表数据中的位置]
删除了一半行,然后显示剩下的前20行。(它将删除所有行,但对
pop
的调用正在推进循环迭代器。)

如果不需要某些列,则在调用
load\u csv
时,应将
delete
列表传递到
columns\u to\u ignore
参数。请参阅上的功能说明。如果需要从内存中的数据集中删除列,我认为花时间学习Pandas库的基础知识是值得的;这会让你的生活简单得多

如果目标标签是分类的,则需要
n\u类
,以便告诉
load\u csv
有多少个类别。因为您有
分类标签=False
,所以不需要它