我在Anaconda Spyder (Python) 中遇到了问题。
在变量浏览器下,Windows 10不能查看对象类型数组。如果我点击 X或Y,就会看到一个错误:
目前不支持对象数组。
我的系统环境是Win 10 Home 64位(i7-4710HQ),Python版本为3.5.2 | Anaconda 4.2.0 (64位) [MSC v.1900 64 bit (AMD64)]。
我在Anaconda Spyder (Python) 中遇到了问题。
在变量浏览器下,Windows 10不能查看对象类型数组。如果我点击 X或Y,就会看到一个错误:
目前不支持对象数组。
我的系统环境是Win 10 Home 64位(i7-4710HQ),Python版本为3.5.2 | Anaconda 4.2.0 (64位) [MSC v.1900 64 bit (AMD64)]。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
dataset = pd.read_csv('Salary_Data.csv') #in your case right name of your file
X=dataset.iloc[:,:-1].values #this will convert dataframe to object
df = pd.DataFrame(X)
你可以在dataframe中查看数据,这会将数组转换为dataframe。
变量浏览器接受dataframe。上述是正确的并经过检查的代码。
(Spyder开发人员在此) 支持对象数组将在 Spyder 4 中添加,该版本将于2019年发布。
我不使用dataFrame
和.values
也可以得到相同的结果。
这对我起作用了。
x = dataset.iloc[:, :-1]
y = dataset.iloc[:,3]
看起来Spyder的数组编辑器不支持显示混合类型的数组(对象数组)。
在这里,您可以查看支持的格式。
第一次使用时有些令人困惑的是:单击数据集和单击数组变量时都会收到相同的编辑器。
对于类型为array的变量,您将收到一个ArrayEditor小部件。我认为调用是在这里进行的。
但是对于类型为DataFrame的变量,您将收到一个DataFrameEditor。我认为调用是在这里进行的。
问题在于两个小部件看起来差不多,因此人们往往认为在两种情况下都会收到相同的结果,但是DataFrameEditor允许混合类型,而ArrayEditor则不允许。
在适当的小部件中支持发布之前,您可以尝试在IPython控制台中检查数组变量。
请使用以下代码:
dataset = pd.read_csv('Data.csv')
X = pd.DataFrame(dataset.iloc[:, :-1].values)
from sklearn.preprocessing import LabelEncoder , OneHotEncoder
labelencoder_X_1 = LabelEncoder()
X[:, 1] = labelencoder_X_1.fit_transform(X[:, 1])
labelencoder_X_2 = LabelEncoder()
X[:, 2] = labelencoder_X_1.fit_transform(X[:, 2])
onehotencoder = OneHotEncoder(categorical_features = [1])
X = onehotencoder.fit_transform(X).toarray()
Spyder目前还不支持此功能,但您可以使用IPython控制台通过直接输入变量名称来打印这些值。