来自R,在那里我可以用str()
检查任何对象的内部结构,我对如何在Python中做同样的事情感到困惑。标准是使用 dir(my_object)
,但它没有列出所有属性,包括非常重要的属性。例如:
from sklearn import datasets
iris = datasets.load_iris()
dir(iris)
dir(iris)
没有列出最重要的属性,如iris.data
、iris.target
等。
我是否应该阅读文档以了解这些属性,或者有没有办法仅通过查看对象内部来找出答案?
数据集被加载到类似字典的对象中,因此您可以找到存储在字典中的数据,而不是包含标准字典方法的命名空间中的所有数据。
In [2]: iris = datasets.load_iris()
In [3]: iris.keys()
Out[3]: ['target_names', 'data', 'target', 'DESCR', 'feature_names']
以下是
一些属性:
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 DatabasennNotesn-----nData Set Characteristics:n :Number of Instances: 150 (50 in each of three
我截断了 iris.data
和 iris.DESCR
的输出。以下是数据集文档