Python sklearn数据集中的特征选择问题

Python sklearn数据集中的特征选择问题,python,scikit-learn,Python,Scikit Learn,我是一个初学者。我现在正在sklearn下编写一个功能选择算法,并编写了一个简单的程序来尝试它。目标是删除数据集中的某些列,但结果是错误的。以下是代码和错误消息。请帮帮我,谢谢。我该怎么办 import numpy as np from sklearn.datasets import load_iris data = load_iris() data=np.array(data) print(data[:,[0,1]]) #Take the first two columns of the da

我是一个初学者。我现在正在sklearn下编写一个功能选择算法,并编写了一个简单的程序来尝试它。目标是删除数据集中的某些列,但结果是错误的。以下是代码和错误消息。请帮帮我,谢谢。我该怎么办

import numpy as np
from sklearn.datasets import load_iris
data = load_iris()
data=np.array(data)
print(data[:,[0,1]]) #Take the first two columns of the dataset and print
错误消息:

Traceback (most recent call last):
  File "K:/b/f_s_DF.py", line 6, in <module>
    print(data[:,[0,1]])#Take the first two columns of the dataset and print
IndexError: too many indices for array: array is 0-dimensional, but 2 were indexed
回溯(最近一次呼叫最后一次):
文件“K:/b/f_s_DF.py”,第6行,在
打印(数据[:,[0,1]])#获取数据集的前两列并打印
索引器错误:数组的索引太多:数组是0维的,但已为2个索引

而不是转换
Numpy.ndarray
您可以在
pandas Dataframe
上转换这些数据,并很容易看到前两列或任意一列。请查看以下代码:


import pandas as pd
from sklearn.datasets import load_iris
data = load_iris()
datasets = pd.DataFrame(data['data'], columns = 
           data['feature_names'])
target_val = pd.Series(data['target'], name = 
            'target_values')
datasets['target'] = target_val
datasets[:2]

输出:


    sepal length      sepal width   petal length    petal width  target
0      5.1                3.5            1.4             0.2       0
1      4.9                3.0            1.4             0.2       0


首先,您需要将虹膜类型
更改为pandas
dataframe
。然后
numpy-ndarray

import numpy as np
from sklearn.datasets import load_iris
iris = load_iris()
data1 = np.array(pd.DataFrame(data= np.c_[iris['data'], iris['target']],
                     columns= iris['feature_names'] + ['target']))
print(data1[:,:2])

从ndarray获取值时,不需要像
1,2
那样给出索引。你可以给
:2

load_iris()
返回一个
Bunch
类型数据,你不能只是在它上面打一个数据线。试试这个
load\u iris(return\u X\u y=True)
解决了我的问题。衷心感谢您的回答。解决了我的问题。这个回答对您有帮助吗?