我正在编写一个非常基本的程序来预测数据集中丢失的值,它使用scikit-learn的Imputer类。
我创建了一个NumPy数组,创建了一个带有策略=‘mean’的Imputer对象,并在NumPy数组上执行了fit_transform()。
当我在执行fit_transform()之后打印数组时,“Nan‘s残留物”,我无法得到任何预测。
我在这里做错什么了?我该如何预测丢失的值?
import numpy as np
from sklearn.preprocessing import Imputer
X = np.array([[23.56],[53.45],['NaN'
我正在使用pandas提供的优秀的read_csv()函数,它提供了:
In [31]: data = pandas.read_csv("lala.csv", delimiter=",")
In [32]: data
Out[32]:
<class 'pandas.core.frame.DataFrame'>
Int64Index: 12083 entries, 0 to 12082
Columns: 569 entries, REGIONC to SCALEKER
dtypes: float64(51), int64(518)
我正在尝试创建一个函数来删除彼此高度相关的特征。但是,我得到了错误''AttributeError: 'numpy.ndarray' object has no attribute 'columns' '' ...
我只想调用pandas来读取列数。我下一步能做什么?
import pandas as pd
import numpy as np
def remove_features_identical(DataFrame,data_source):
n=len(DataFrame.columns)
prin
在RapidMiner Studio 9.5.1中,在我的python脚本完成后,我可以打印出结果数据,并看到它是按照预期的方式生成的,并使用适当的列。rapidminer处理器在消息中仍然失败:
Exception: com.rapidminer.operator.OperatorException
Message: Script terminated abnormally: ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
Stack
在调试时偶然发现了这一奇怪之处,更新从Pandas Dataframe列派生的numpy数组也意外地修改了Dataframe的值,尽管在更新中从未引用过它,但只提到了numpy数组。这怎麽可能?
import numpy as np
import pandas as pd
df1 = pd.DataFrame(columns=["A"],data=[1,2,3,4,5,6,7,8,9,10])
xarray = df1.iloc[:,0].values #put df1 values into an np array
for i
我正在尝试使用ExtraTreesClassifier的科学工具包-学习我的数据。我有两个数字数组X和y,x是维数(10000,51)和y是(10000,)。为了确保它们是numpy数组格式,我使用
X = numpy.array(X, dtype=np.float32)
print numpy.asarray(X,dtype=np.float32) is X
y = numpy.array(y, dtype=np.float32)
print numpy.asarray(y,dtype=np.float32) is y`
我两个人都得到了TRUE。然后,我将我的模型定义为:
clf = Ex
我正在探索pyspark和整合scikit-learn与pyspark的可能性。我想使用scikit-learn在每个分区上训练一个模型。这意味着,当我的RDD被定义并分布在不同的工作节点上时,我想使用scikit-learn并在每个工作节点上存在的每个分区上训练一个模型(假设是一个简单的k- means )。由于scikit-learn算法需要一个Pandas数据帧,所以我最初的想法是为每个分区调用toPandas,然后训练我的模型。但是,toPandas函数将DataFrame收集到驱动程序中,这不是我想要的。有没有其他方法可以达到这个目标呢?
如何将numpy数组转换为dataframe列。假设我已经创建了一个空的dataframe,df,并且我循环通过代码来创建5个numpy数组。在for循环的每次迭代中,我希望将在该迭代中创建的numpy数组转换为dataframe中的一列。为了清楚起见,我不想在每次循环迭代时都创建一个新的数据帧,我只想在现有的列中添加一列。我下面的代码是粗略的,语法不正确,但说明了我的观点。
df = pd.dataframe()
for i in range(5):
arr = create_numpy_arr(blah) # creates a numpy array
df[i] = # co
我正在尝试使用scikit-learn IterativeImputer()来估算数据帧中的一些缺失值。问题是,计算机将接受pandas数据帧作为输入,但将返回一个numpy数组,而不是原始数据帧。下面是取自此post的一个简单示例。 # Create an empty dataset
df = pd.DataFrame()
# Create two variables called x0 and x1. Make the first value of x1 a missing value
df['x0'] = [0.3051,0.4949,0.6974,0.3769,0.
当我在导入tensorflow之前导入scikit-learn时,我没有任何问题。运行这段代码会产生1.7766212763101197e-12的输出。
import numpy as np
np.random.seed(123)
import numpy.random as rand
from sklearn.decomposition import PCA
import tensorflow as tf
X = rand.randn(100,15)
X = X - X.mean(axis=0)
mod = PCA()
w = mod.fit_transform(X)
h = mod.co
我有一个来自sklearn.datasets波士顿房价数据的pandas DataFrame,我正在尝试将它转换为一个numpy数组,但保留了列名。下面是我尝试过的代码:
from sklearn import datasets ## imports datasets from scikit-learn
import numpy as np
import pandas as pd
data = datasets.load_boston() ## loads Boston dataset from datasets library
df = pd.DataFrame(data.data, c
我正在开发一个python包,它需要scikit learn作为依赖项,所以在setup.py中我有:
install_requires=['scikit-learn>=0.20.0']
我将软件包上传到test.pypi.org,当我试图在虚拟环境中安装它时,我得到了这个错误:“错误:无法安装软件包,因为这些软件包版本具有冲突的依赖关系。”
The conflict is caused by:
scikit-learn 0.24.1 depends on numpy>=1.13.3
scikit-learn 0.24.0 depends on nu
如何将数据从Scikit-learn Bunch对象转换为Pandas DataFrame?
from sklearn.datasets import load_iris
import pandas as pd
data = load_iris()
print(type(data))
data1 = pd. # Is there a Pandas method to accomplish this?
我有一个很大的numpy数组,当我运行scikit training的train_test_split将数组拆分为训练和测试数据时,我总是会遇到内存错误。什么是一种更有效的内存分割成训练和测试的方法,为什么train_test_split会导致这种情况?
下面的代码会导致内存错误并导致崩溃。
import numpy as np
from sklearn.cross_validation import train_test_split
X = np.random.random((10000,70000))
Y = np.random.random((10000,))
X_train, X_t