Python 使用scikit learn存储新功能

Python 使用scikit learn存储新功能,python,dictionary,scikit-learn,bioinformatics,feature-extraction,Python,Dictionary,Scikit Learn,Bioinformatics,Feature Extraction,我正在从事生物信息学序列研究,包括从多组序列(FASTA文件)中提取各种基于序列的特征。 我为序列生成各种特性,并分别处理每个序列(我将处理成千上万个序列)。我是编程和处理数据的新手 存储和输出(即保存到csv文件中的矩阵)生成的特征的最佳方式是什么 特性的名称对我来说很重要,所以我需要它们,除了需要它们的输出顺序对每个单独的序列保持一致之外 我计划用字典存储这些功能(每个序列),因为我知道scikit learn的“”函数可能适用于此。 然而-一个dict是无组织的,我将分别提取每个序列的特征

我正在从事生物信息学序列研究,包括从多组序列(FASTA文件)中提取各种基于序列的特征。 我为序列生成各种特性,并分别处理每个序列(我将处理成千上万个序列)。我是编程和处理数据的新手

存储和输出(即保存到csv文件中的矩阵)生成的特征的最佳方式是什么

特性的名称对我来说很重要,所以我需要它们,除了需要它们的输出顺序对每个单独的序列保持一致之外

我计划用字典存储这些功能(每个序列),因为我知道scikit learn的“”函数可能适用于此。 然而-一个dict是无组织的,我将分别提取每个序列的特征,写出它,然后从下一个序列中提取-它在写出时会保持相同的顺序吗?(所有特征都是数字和连续的,但许多特征的值可能为0,有些特征的输出为矢量[例如,重叠双图的400个频率计数]

谢谢


(我主要关心的是I/O,而不是混合功能的输出。)

因此,最好的方法是
pandas
dill
。我认为
pandas
将是您更好的选择,但您可以同时使用这两种方法

import pandas as pd
import dill
如果您试图使用标签存储矩阵,您正在谈论的是
DataFrames
。您可以通过执行
DF=pd.DataFrame(array\u object)
pandas
中通过数组或字典轻松创建
DataFrames
。您可以通过
DF.columns=[“label1”、“label2”等设置列名
和索引值使用相同的方法
DF.index=[“A”、“B”等]
。然后您可以通过执行
DF.to_csv(“filename.tsv”,sep=“\t”)
(我通常使用制表符分隔的B/c逗号,这很奇怪)将其写入spreadhseet格式,以后您可以通过执行
pd.read\u table轻松检索该格式(“filename.tsv”,sep=“\t”)
。另一种方法是使用
dill
,它将环境变量存储到一个文件中,以后可以加载(我对更复杂的对象执行此操作,但它适用于数据帧或矩阵或任何您想要的对象)。如果您从
矩阵/数组中获得了
数据帧
,则只需执行
dill.dump(DF,open(“DF.obj”,“wb”)
即可存储该对象,然后稍后使用
dill.load(open(“DF.obj”,“rb”)
检索该对象


我会使用
pandas.DataFrame.to_csv()
方法,因为你可以在Excel中打开这些东西(生物学家喜欢Excel)。如果它们只是矩阵,那么使用
dill
来存储对象就太过分了。如果你是为自己制作东西,但将存储的
dill
对象传递给其他人可能会让人讨厌。有一种叫做有序字典的方法,可能会有帮助:知道这是否有效吗使用sklearn方法?不,对不起,我没有在scikit-learn的上下文中使用它们。无论如何,谢谢-我正在寻找使用上述工具的人的答案。(因为我问的上下文是“做这件事最简单/最好的方法是什么”+“如何做”)
dictvectorier
将字符串映射到索引,因此它可以有效地排序。