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
,所以不需要它