如何在python中创建自己的数据字典/结构

时间:2016-01-27 14:32:21

标签: python pandas dataset scikit-learn spyder

sci-kit learn python库中,通过以下命令可以轻松访问许多数据集:

例如加载iris数据集:

iris=datasets.load_iris()

我们现在可以按如下方式分配数据和目标/标签变量:

X=iris.data # assigns feature dataset to X

Y=iris.target # assigns labels to Y

我的问题是如何使用我自己的数据以csv,xml或任何其他格式创建我自己的数据字典到上面类似的东西,这样可以轻松调用数据并轻松访问功能/标签。
这可能吗?谁来帮帮我!! 顺便说一下,我通过连续体使用spyder(anaconda)平台 谢谢!

2 个答案:

答案 0 :(得分:1)

我发现至少有两个(简单)解决方案。

首先,您可以将数据存储在您喜欢的任何结构中。

# Storing in a list
my_list = []
my_list.append(iris.data)
my_list[0] # your data

# Storing in a dictionary
my_dict = {}
my_dict["data"] = iris.data
my_dict["data"] # your data

或者,您可以创建自己的课程

Class MyStructure:
    def __init__(data, target):
        self.data = data
        self.target = target

my_class = MyStructure(iris.data, iris.target)
my_class.data # your data

希望有所帮助

答案 1 :(得分:0)

如果您要做的只是从csv文件中读取数据并将它们组织起来,我建议您只使用pandas或numpy的genfromtxt函数。

mydata=numpy.genfromtxt(filepath,*params)

如果定期格式化CSV,您可以通过指定以下内容来提取每列的名称:

mydata=numpy.genfromtxt(filepath,unpack=True,names=True,delimiter=',')

然后您只需键入名称/标题即可访问所需的任何列数据:

mydata['your header']

(Pandas也有类似的方式从CSV或类似文件中以有组织的方式抓取数据。)

但是如果你想做很长的路并学习:

简单地说,您希望为您正在使用的数据编写一个类,并使用自己的访问,修改,读取和#dosomething函数。而不是代码,我认为你可以从进入和阅读虹膜类,或从任何初学者指南到基于对象的编程的简单类的介绍中获益更多。

要执行您想要的操作,对于 MyData 对象,您可以拥有例如

  • 读取(#file)函数,该函数从某个预期格式的给定文件中读取并返回一些指定的结构。要从csv文件中读取,您只需使用numpy的loadtxt方法。
  • 修改(#some属性)