1 min read

python使用技巧

sklearn模型的保存与恢复

from sklearn.externals import joblib  
from sklearn import svm  
import os  
  
# os.chdir("workspace/model_save")  
X = [[0, 0], [1, 1]]  
y = [0, 1]  
clf = svm.SVC()  
clf.fit(X, y)  
joblib.dump(clf, "train_model.m")  

from sklearn.externals import joblib  

clf = joblib.load("train_model.m")  
X = [[0, 0], [1, 1]]  
y = [0, 1]  
  
print(clf.predict(X))  

python中的ecdf函数

>>> import numpy as np
>>> from statsmodels.distributions.empirical_distribution import ECDF
>>>
>>> ecdf = ECDF([3, 3, 1, 4])
>>>
>>> ecdf([3, 55, 0.5, 1.5])
array([ 0.75,  1.  ,  0.  ,  0.25])


ecdf = ECDF([3, 3, 1, 4])

是给定总体分布

ecdf([3, 55, 0.5, 1.5])

给定样本,返回总体分布的response

卸装多余的Python

Win7不如 Mac 方便,多余的 Python 或者 R 版本,直接下载腾讯管家卸装比较方便。 # 导入自建函数 {#usf-module}

  • .ipynb的同一路径下,存入一个.py文件,具体信息如上。
  • 然后在.ipynb内就可以导入这个包,完成自建函数的引入。

导入自建.ipynb文件

??讲了如何导入自建函数,但是函数格式要求为.py文件。 @ImportingJupyterNotebooksasModules 给出了一个集成函数,可以把.ipynb文件当作.py文件导入。 下载地址在这里。 下载完成后,将Ipynb_importer.py文件放入.ipynb文件的同一路径,即可。

argmax 仿照

import numpy as np
import pandas as pd

a = pd.Series( [1, 2, 3, 4, 10, 9, 7])
print np.argmax(a)
print a[a == a.max()]

4
4    10
dtype: int64

scipy.stats.kstest检验正态分布

scipy.stats.kstest(rvs, cdf, args=(), N=20, alternative='two_sided', mode='approx', **kwds)

>>> from scipy import stats
>>> import numpy as np
>>> from scipy.stats import kstest
>>> x = np.linspace(-15,15,9)
>>> kstest(x,'norm')
(0.44435602715924361, 0.038850142705171065)

p value = 0.0389,因此显著,拒绝原假设,不符合正态分布假设。[@scipystatskstest]

not isin

import pandas as pd
df = pd.DataFrame({'a':[1,2],'b':[3,4]})
df[~df.a.isin([1])]