来自R,在那里我可以用str()
检查任何对象的内部结构,我很困惑如何在Python中做同样的事情。标准是使用dir(my_object)
,但它没有列出所有属性,包括非常重要的属性。例如:
from sklearn import datasets
iris = datasets.load_iris()
dir(iris)
dir(iris)
未列出最重要的属性,例如iris.data
,iris.target
等。
我是否应该阅读文档以了解这些属性,或者是否有办法从查看对象内部找到它?
答案 0 :(得分:6)
数据集被加载到类似dict的对象中,因此您可以找到存储在dict中的数据,而不是包含标准dict方法的命名空间中的所有内容。
In [2]: iris = datasets.load_iris()
In [3]: iris.keys()
Out[3]: ['target_names', 'data', 'target', 'DESCR', 'feature_names']
答案 1 :(得分:1)
以下是一些属性:
In [10]: iris.data
Out[10]: array([[ 5.1, 3.5, 1.4, 0.2],
[ 4.9, 3. , 1.4, 0.2],
[ 4.7, 3.2, 1.3, 0.2],
...
In [11]: iris.target
Out[11]: array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])
In [13]: iris.target_names
Out[13]: array(['setosa', 'versicolor', 'virginica'],
dtype='|S10')
In [14]: iris.feature_names
Out[14]: ['sepal length (cm)',
'sepal width (cm)',
'petal length (cm)',
'petal width (cm)']
最后一个将为您提供具有一些摘要统计数据的数据集的详细说明。
In [15]: iris.DESCR
Out[15]: 'Iris Plants Database\n\nNotes\n-----\nData Set Characteristics:\n :Number of Instances: 150 (50 in each of three
我截断了iris.data
和iris.DESCR
的输出。 Here are the dataset docs