似乎每次迭代对象时KFold都会生成相同的值,而Shuffle Split每次都会生成不同的索引.它是否正确?如果是这样,一个用户有什么用途?
cv = cross_validation.KFold(10, n_folds=2,shuffle=True,random_state=None)
cv2 = cross_validation.ShuffleSplit(10,n_iter=2,test_size=0.5)
print(list(iter(cv)))
print(list(iter(cv)))
print(list(iter(cv2)))
print(list(iter(cv2)))
Run Code Online (Sandbox Code Playgroud)
产生以下输出:
[(array([1, 3, 5, 8, 9]), array([0, 2, 4, 6, 7])), (array([0, 2, 4, 6, 7]), array([1, 3, 5, 8, 9]))]
[(array([1, 3, 5, 8, 9]), array([0, 2, 4, 6, 7])), (array([0, 2, 4, 6, 7]), array([1, 3, 5, 8, 9]))]
[(array([4, 6, 3, 2, 7]), array([8, 1, 9, 0, 5])), (array([3, 6, 7, 0, 5]), array([9, 1, 8, 4, 2]))]
[(array([3, 0, 2, 1, 7]), array([5, …Run Code Online (Sandbox Code Playgroud) 我明白gfortran可以编译f90或f95吗?它如何知道它正在编译哪一个?还可以编译f77代码吗?ubuntu已经有了fortran编译器,还是需要下载gfortran?
我使用Sklearn通过以下步骤构建线性回归模型(或任何其他模型):
X_train和Y_train是训练数据
标准化培训数据
X_train = preprocessing.scale(X_train)
Run Code Online (Sandbox Code Playgroud)适合模型
model.fit(X_train, Y_train)
Run Code Online (Sandbox Code Playgroud)一旦模型与缩放数据拟合,我如何使用拟合模型预测新数据(一次一个或多个数据点)?
我正在使用的是
缩放数据
NewData_Scaled = preprocessing.scale(NewData)
Run Code Online (Sandbox Code Playgroud)预测数据
PredictedTarget = model.predict(NewData_Scaled)
Run Code Online (Sandbox Code Playgroud)我想我错过了一个转换函数,preprocessing.scale以便我可以用训练过的模型保存它,然后将它应用到新的看不见的数据上?请帮忙.
如何在调用类方法时将对象作为参数传递给类方法并调用传递对象的方法?
说我有:
class myclass:
def __init__(self):
pass
def myfunc(self, something):
something.do()
anobject = blah.xyz()
another_obj = myclass()
another_obj.myfunc(anobject)
Run Code Online (Sandbox Code Playgroud) 当我将numpy数组转换为pandas数据帧时,如果整数大于2 ^ 63 - 1,pandas会将uint64类型更改为对象类型.
import pandas as pd
import numpy as np
x = np.array([('foo', 2 ** 63)], dtype = np.dtype([('string', np.str_, 3), ('unsigned', np.uint64)]))
y = np.array([('foo', 2 ** 63 - 1)], dtype = np.dtype([('string', np.str_, 3), ('unsigned', np.uint64)]))
print pd.DataFrame(x).dtypes.unsigned
dtype('O')
print pd.DataFrame(y).dtypes.unsigned
dtype('uint64')
Run Code Online (Sandbox Code Playgroud)
这很烦人,因为我无法以表格格式将数据帧写入hdf文件:
pd.DataFrame(x).to_hdf('x.hdf', 'key', format = 'table')
Run Code Online (Sandbox Code Playgroud)
输出继电器:
TypeError:无法序列化[unsigned]列,因为其数据内容为[integer] object dtype
有人可以解释类型转换吗?
在执行pandas.DataFrame.groupby()。sum()时,可以保留非数字列(第一个出现的值)吗?
例如,我有一个这样的DataFrame:
df = pd.DataFrame({'A' : ['aa1', 'aa2', 'aa1', 'aa2'],'B' : ['bb1', 'bbb1', 'bb2', 'bbb2'],'C' : ['cc1', 'ccc2', 'ccc3', 'ccc4'],'D' : [1, 2, 3, 4],'E' : [1, 2, 3, 4]})
>>> df
A B C D E
0 aa1 bb1 cc1 1 1
1 aa2 bbb1 ccc2 2 2
2 aa1 bb2 ccc3 3 3
3 aa2 bbb2 ccc4 4 4
>>> df.groupby(["A"]).sum()
D E
A
aa1 4 4
aa2 6 6
Run Code Online (Sandbox Code Playgroud)
以下是我想要获得的结果:
B C D E
A
aa1 bb1 …Run Code Online (Sandbox Code Playgroud) 我正在划分两个numpy数组:
>>> import numpy as np
>>> a1 = np.array([[ 0, 3],
[ 0, 2]])
>>> a2 = np.array([[ 0, 3],
[ 0, 1]])
>>> d = a1/a2
>>> d
array([[ nan, 1.],
[ nan, 2.]])
>>> where_are_NaNs = np.isnan(d)
>>> d[where_are_NaNs] = 0
>>> d
>>> array([[ 0., 1.],
[ 0., 2.]])
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种方法来获得0而不是使用for循环的Nan?
numpy fillna()和pandas 有类似的功能吗?
我不明白是怎么if not x % 2: return True运作的.如果x不能被2整除,那么这是不是意味着?返回True?这就是我在这段代码中看到的.
我看到它if not x % 2: return True会返回相反的情况,如果一个数字可被2整除,则返回True.
我只是不明白这部分语法是如何工作的.
def is_even(x):
if not x % 2:
return True
else:
return False
Run Code Online (Sandbox Code Playgroud) 使用 sklearn,当你创建一个新的 KFold 对象并且 shuffle 为真时,它会产生一个不同的、新的随机折叠索引。但是,即使 shuffle 为真,来自给定 KFold 对象的每个生成器也会为每个折叠提供相同的索引。为什么它会这样工作?
例子:
from sklearn.cross_validation import KFold
X = np.array([[1, 2], [3, 4], [1, 2], [3, 4]])
y = np.array([1, 2, 3, 4])
kf = KFold(4, n_folds=2, shuffle = True)
?
for fold in kf:
print fold
?
print '---second round----'
?
for fold in kf:
print fold
Run Code Online (Sandbox Code Playgroud)
输出:
(array([2, 3]), array([0, 1]))
(array([0, 1]), array([2, 3]))
---second round----#same indices for the folds
(array([2, 3]), array([0, 1]))
(array([0, 1]), array([2, 3]))
Run Code Online (Sandbox Code Playgroud)
这个问题的动机是对这个 …
我在python中有一个有很多行的对象:
输入:
Team1 Player1 idTrip13 133
Team2 Player333 idTrip10 18373
Team3 Player22 idTrip12 17338899
Team2 Player293 idTrip02 17656
Team3 Player20 idTrip11 1883
Team1 Player1 idTrip19 19393
Run Code Online (Sandbox Code Playgroud)
我需要聚合这些数据(如数据透视表).
OUTPUT我正在努力:
Team1 Player1 : 2 trips : sum(133+19393)
Team2 Player333 : 1 trip : 18373; Player293 : 1 trip : 17656
Team3 Player22 : 1 trip : 17338899; Player20 : 1 trip : 1883
Run Code Online (Sandbox Code Playgroud)
有人可以建议在Python中使用适当的对象,以便我可以有以下输出吗?
print team, player, trips, time
Run Code Online (Sandbox Code Playgroud) 我是Python新手,我试图将参数(数据帧)传递给函数并通过读取Excel文件来更改参数(数据帧)的值。(假设我已经导入了所有必需的文件)
我注意到 python 在这里没有通过引用传递参数,并且我最终没有初始化/更改数据帧。
我读到 python 通过对象引用传递,而不是通过值或引用传递。但是,我不需要更改相同的数据框。
输出是:类'pandas.core.frame.DataFrame'>
from pandas import DataFrame as df
class Data:
x = df
@staticmethod
def import_File(df_name , file):
df_name = pd.io.excel.read_excel(file.replace('"',''), sheetname='Sheet1', header=0, skiprows=None, skip_footer=0, index_col=None, parse_cols=None, parse_dates=True, date_parser=True, na_values=None, thousands=None, convert_float=True, has_index_names=None, converters=None, engine=None )
def inputdata():
Data.import_File(Data.x,r"C:\Users\Data\try.xlsx")
print(Data.x)
Run Code Online (Sandbox Code Playgroud) 有人可以解释我这种行为,为什么1)在2)和3)工作时不起作用
1)
class bm(object):
def __init__(self,val):
self.a=val
def get(self):
return self.a
def set(self,val):
self.a=val
a=property(get,set)
In [43]: ob1=bm('vin')
Run Code Online (Sandbox Code Playgroud)
给我递归错误,而下面的代码工作正常
2)
class bm(object):
def __init__(self,val):
self._a=val
def get(self):
return self._a
def set(self,val):
self._a=val
a=property(get,set)
In [43]: ob1=bm('vin')
Run Code Online (Sandbox Code Playgroud)
工作正常.我可以访问ob.a并执行ob.a =''
即使这样也可以
3)
class bm(object):
def __init__(self,val):
self.a=val
def get(self):
return self._a
def set(self,val):
self._a=val
a=property(get,set)
In [43]: ob1=bm('vin')
Run Code Online (Sandbox Code Playgroud)
工作正常.我可以访问ob.a并执行ob.a =''