plt、np、pd、talib、scipy、sklearn常用API总结

一、matplotlib

  1. import matplotlib.pyplot as plt
  2. plt.figure(figsize=(20, 8), dpi=80) 创建画布
    fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(), dpi=) 多坐标系
  3. plt.savefig(filename) 保存图片
  4. plt.plot(x_iter, y_iter, label=’’, color=‘r’, linestyle=’:’, linewidth=10) 折线图
    linestyle: -实线 --虚线 -.点划线 :点虚线 ’ '空格
    color: r g b w c m y k
    ax.plot() 多坐标系
  5. plt.xticks(x_ticks, x_show, size=, color=) x坐标轴显示样式
    ax.set_xticks() 多坐标系
    ax.set_xticklabels()
  6. plt.yticks()
  7. plt.xlabel(‘name’, color=, size=) x轴命名
    ax.set_xlabel() 多坐标系
  8. plt.ylabel()
  9. plt.title(‘name’, size=) 图标题
    plt.set_title() 多坐标系
  10. plt.legend(loc=‘best’) 图线说明
    ax.legend() 多坐标系
  11. plt.show() 显示画
  12. plt.bar(x, y, color=, label=, width=0.3) 柱状图
  13. plt.hist(x, bins=int, label=, normed=1, color=) 直方图:bins组距,normed:1频率,0频数
  14. plt.grid(True, linestyle=, alpha=0.5) 直方图网格
  15. plt.pie(x, labels=[],autopct=’%1.2f%%’, colors=[]) 饼状图
  16. plt.axis(‘equal’) 饼状图显示正圆
  17. plt.annotate(‘注释’, size=, xy=(30,1), arrowprops=dict(arrowstyle=’->’), xytext=(20,7))
    箭头注释: xy:箭头指向坐标, arrowprops:箭头样式, xytext:文本位置
  18. plt.text(10, 3, ‘注释’, size=, color=) 文本注释
  19. from matplotlib.finance import candlestick_ochl
  20. fig, axes= plt.subplots(nrows=1, ncols=1, figsize=(20, 8), dpi=100)
  21. candlestick_ochl(axes, val, colorup=‘r’, colordown=‘g’, width=0.3) k线图
    val:索引、开盘价、收盘价、最高价、最低价
  22. plt.scatter() 散点图

二、numpy

  1. import numpy as np
  2. np.array(arr, dtype=np.float32) 创建一组数据并指定类型
    np.bool np.int np.int8 np.int16 np.int32 np.uint8 np.folat64 np.string_
  3. arr.dtype 数据类型
  4. arr.shape 数组维度元祖
  5. arr.flags 内存布局信息
  6. arr.ndim 数组维数
  7. arr.size 元素数量
  8. arr.itemsize 一个元素长度
  9. arr.nbytes 总字节
  10. np.empty([3,4]) 创建3 X 4
  11. np.empty_like()
  12. np.ones([3,4]) 创建3 X 4的全为1的数组
  13. np.zeros() 全为 0
  14. np.full([3,4],i) 全为i
  15. np.full_like()
  16. np.ones_like()
  17. np.zeors_like()
  18. np.asarray(a) 引用
  19. np.copy(a) 拷贝数据
  20. np.linspace(start, stop, bins, dtype) 生成等间隔数组
  21. np.arange(start, stop, step, dtype) 生成等步长的数组
  22. np.random.rand()
  23. np.random.randint()
  24. np.random.uniform()
  25. np.random.normal(均值,标准差, (3,4))生成正态分布数组
  26. 方差
    在这里插入图片描述
  27. 标准差
    在这里插入图片描述
  28. arr[0, 0] arr[0, :10] arr[:10, : 10] 数组的索引
  29. arr.reshape(维度) 返回一个新形状数组
  30. arr.resize(维度) 改变arr的形状
  31. arr.flatten() 返回一个一维数组
  32. arr.astype(np.int32) 改变数据类型
  33. np.round(arr, 4) 修改arr小数位数为4
  34. arr.T 置换
  35. arr.tostring() 返回字符类型
  36. arr.tobytes() 返回字节类型
  37. arr > 1 判断数组中数据是否大于1,返回bool类型的数组
  38. arr[arr>1] 返回所有大于1的数据
  39. arr[arr>1] = 10 重新赋值
  40. np.all(arr>0) 判断所有数据都大于0
  41. np.unique(arr) 返回无重复的数组
  42. np.where(arr > 0, 1, 0) arr中大于0的数据显示1,否则显示0
  43. np.where(np.logical_and(arr>0.5, arr<1), 1, 0) arr中大于0.5并且小于1的数据显示为1,否则显示0
  44. np.where(np.logical_or(arr>0.5, arr<-1), 1, 0) arr中大于0.5或者小于-1的数据显示为1否则0
  45. np.max(arr, axis=1) 统计最大值, axis=1行内比较,0列比较
  46. np.min(arr, axis=1) 最小值
  47. np.median(arr, axis=) 平均值
  48. np.mean(arr, axis=) 平均值
  49. np.std(arr, axis) 标准差
  50. np.var(arr, axis) 方差
  51. np.sum(arr, axis=1) 求和
  52. np.argmax(arr, axis=1) 最大值出现的位置
  53. np.argmin(arr, axis=1) 最小值出现的位置
  54. 数组间运算
    相应的维度相等或其中一个为1
  55. np.mat(arr) 讲数组转化成矩阵
  56. np.matmul( a, b) 矩阵乘法运算(M行,N列)X (N行,L列) = (M行,L列)
  57. np.concatenate([arr1, arr2], axis=1) 行合并,axis不写或0为列合并
  58. np.hstack([arr1, arr2]) 行合并
  59. np.vstack([arr1, arr2]) 列合并
  60. np.split( arr, 3, axis=0) 列分割
  61. np.split(arr, 3, axis=1) 行分割
  62. np.exp(x) e^x
  63. arr.tolist() 数组转列表
  64. arr.tobytes() 数组转字节
  65. np.percentile(ndarray, percent) 得到百分位数
    ndarray: numpy格式
    percent: 比如98,单位%

三、pandas

  1. import pandas as pd
  2. pd.DataFrame(arr, index=, columns=) 创建二维数据, 行索引index,列索引columns
  3. pd.date_range(‘2017-01-01’, end=None, periods=500, freq=‘B’) 生成从2018-01-01起500天的日期,不含周末
  4. arr.shape 查看具体维度
  5. arr.dtypes 查看类型
  6. arr.ndim 查看维数
  7. arr.index 查看行索引
  8. arr.columns 查看列索引
  9. arr.values 查看值
  10. arr.T 置换
  11. arr.head(5) 显示前5行,不写数字默认5行
  12. arr.tail(5) 显示后5行
  13. arr.index = ater 索引整体修改,只能整体修改
  14. arr.columns = ater
  15. arr.reset_index(drop=True) 重置索引,True删掉原索引,False保留原索引
  16. arr.set_index([‘某一列’]) 以某一列设置新索引
  17. arr.set_columns()
  18. pd.Series(arr, index=) 创建一维数据
  19. arr[列名][行名] 列行索引,只能先列后行
  20. arr.loc[‘列名1’ (:‘列名2’), ‘行名’(:‘行名’)]
  21. arr.iloc[i:i, i:i]
  22. arr.ix[] 20和21的合并用法
  23. 20、21、22可直接跟=赋值
  24. arr.sort_values(by=[列名1, 列名2], ascending=False) 排序,ascending为True从大到小
  25. sort_index(ascending=bool) 按照索引排序
  26. arr.describe() 计算每列的平均值、标准差、最大值、最小值、分位数
  27. arr.count(axis=0/1) 统计
  28. arr.sum(axis=) 求和
  29. arr.mean(axis=) 求平均
  30. arr.mad(axis=) 平均绝对差
  31. arr.median(axis=) 中值
  32. arr.min(axis=) 最小
  33. arr.max(axis=) 最大
  34. arr.mode(axis=)
  35. arr.prod(axis=) 积
  36. arr.abs(axis=) 绝对值
  37. arr.std(axis=) 标准差
  38. arr.var(axis=) 方差
  39. arr.idxmax(axis=) 最大索引
  40. arr.idxmin(axis=) 最小索引
  41. arr.cumsum(axis) 前n个数的和
  42. arr.cummax(axis=) 前n个数最大值
  43. arr.cummin(axis=) 前n最小
  44. arr.cumprod(axis=) 前n的积
  45. arr.plot(figsize=(20,8)) plt.show() 画图
  46. arr[arr[列名]>0] 返回列值大于0的所有arr数据
  47. arr[(arr[列名1]>0) & (arr[列名2]>15)] 于
  48. arr[(arr[列名1]>0) | (arr[列名2]>15)] 或
  49. arr[列名].isin([1,2,3]) 判断在不在1,2,3中
  50. arr.add(1) 加1
  51. arr1.sub(arr2) 加
  52. arr.apply(lambda ,axis=1) 自定义运算
  53. pd.read_csv(filepath, usecols=[列名], sep=",", delimiter=None) 读取文件
  54. arr.to_csv(filename, columns=[列名], index=False, header=True, mode=‘w’) 存储
  55. pd.read_hdf(fole, key=None) 读取h5文件
  56. arr.to_hdf(name, key=‘x’) 存储
  57. read_ to_ :csv, json, html, clipboard, excel, hdf, feather, parquet, msgpack, stata, sas, pickle, sql, gbq
  58. arr.dropna() 删除缺失行
  59. arr.fillna(value, inplace=True) 把nan的位置填充为value, inplace为True在原数据上改动,False得到新数据
  60. arr.replace(to_replace=‘原value’, value=‘新value’) 替换数据
  61. pd.qcut( arr, 10) 对一维数据分组10份
  62. p_counts = pd.cut(arr, bins) bins是分区区间
  63. pd.value_counts() 统计分组次数
  64. pd.get_dummies(p_counts, prefix=‘rise’) 哑变量矩阵
  65. pd.concat([arr1, arr2], axis=1) 合并,1:行 0:列
  66. pd.merge(arr1, arr2, how=“left”, on=[列名1,列名2]) 链接合并 how:inner, left, right, outer
  67. pd.crosstab(arr1. arr2) 交叉数据
  68. arr.plot(kind=‘bar’, stacked=True, figsize=(), width=0.2, fontsize=30) 生成交叉图表
  69. arr.pivot_table([列名1], index=[列名2]) 透视表
  70. arr.groupby([列名1,列名2], as_index=False) .max() 分组聚合
  71. data.resample(‘W’).first()
    周W、月M、季度Q、分钟min、3天3D、年Y
    first last max min mean
  72. pd.datetime(“2013-1-1”) 生成时间
  73. pd.datetime([“2013-1-1”, “2000-4-4”, np.nan, “2018-9-9”]) 生成时间序列
  74. pd.DatetimeIndex([“2013-1-1”, “2000-4-4”, np.nan, “2018-9-9”)
  75. date.day
  76. date.weekday
  77. date.month
  78. date.year
  79. from pandas.tseries.offsets import MonthEnd, Day, Minute, MonthBegin, YearEnd, Hour, YearBegin
    Hour(1) + Minute(30)
  80. date.shift(n, freq=‘3D’) DatetimeIndex时间的整体偏移
    D每日
    B每工作日
    H T S 时分秒
    M每月最后一天
    BM每月最后一个工作日
    WOM-1MON每月第一个星期一
  81. pd.date_range(start=, end=, periods=, freq=,tz=, normalize=,name=,closed=)
  82. pd.rolling_mean(arg, window=n, min_periods=,freq=,center=False,how=).plot()
  83. pd.ewma(arg, span=n).plot()
  84. pd.rolling_var(data, window=n).plot()
  85. pd.rolling_std(data, window=n).plot()
  86. pd.rolling_corr(data1, data2, window=n).plot()
  87. pd.scatter_matrix(DataFrame, figsize=).plot()
  88. data.query(“x > 1 & y < 2”) 缩小数据集
  89. data.rename(index={原索引:新索引}, colums={原索引:新索引}) 更改索引名字
  90. arr.tolist() 数组转列表
  91. arr.tobytes() 数组转字节

四、talib

  1. import talib
  2. macd,macdsignal,macdhist=talib.MACD(close,fastperiod=12,slowperiod=26,signalperiod=9)
    传入参数必须是ndarray格式
    macd:快线(DIF)
    macdsignal:慢线(DEA)
    macdhist:MACD柱状图值(bar)
  3. real = talib.RSI(close, timeperiod=14)
    传入参数必须是ndarray
    real:返回固定区间内的柱状图

五、scipy

  1. from scipy.stats import pearsonr 导入皮尔逊相关系数
  2. pearsonr(arr1, arr2)
    return : 第一个值相关性,第二个值不用管

六、sklearn

特征抽取(字典、文本)
  1. sklearn.feature_extraction.DictVectorizer(sparse=True,…)
    字典特征提取
    dic.fit_transform(X)
    dic.inverse_transform(X) X:array数组或者sparse矩阵 返回值:转换之前数据格式
    dic.get_feature_names() 返回类别名称
  2. sklearn.feature_extraction.text.CountVectorizer(stop_words=[])
    文本特征提取
    dic.fit_transform(X)
    dic.inverse_transform(X) X:array数组或者sparse矩阵 返回值:转换之前数据格式
    dic.get_feature_names() 返回单词列表
  3. sklearn.feature_extraction.text.TfidfVectorizer()
    文本特征提取,频率
  4. import jieba 导包中文处理
  5. jieba.cut(text) 分割中文
    text : 中文字符串
特征预处理(标准化、归一化)
  1. sklearn.preprocessing.MinMaxScaler(feature_range=[2,3])
    归一化在这里插入图片描述

  2. sklearn.preprocessing.StandardScaler()
    标准化在这里插入图片描述

降维-特征选择(过滤式:方差选择法、相关系数,嵌入式:决策树、正则化)
  1. sklearn.feature_selection.VarianceThreshold(threshold=方差)
    低方差选择法
  2. scipy.stats.pearsonr(arr1, arr2)
    皮尔逊相关系数
    return : 第一个值相关系数,第二个值不用管
    在这里插入图片描述
降维-主成分分析(PCA)
  1. sklearn.decomposition.PCA(n_components=0.95)
    n_components: 小数:保留百分比 整数:保留多少个特征
数据集(回归数据集、分类数据集)
  1. sklearn.model_selection.train_test_split(x,y, test_size=0.3)
    划分数据集
    return : x_train, x_test, y_train, y_test
  2. sklearn.datasets.load_iris() 鸢尾花数据集(分类)
  3. sklearn.datasets.load_digits() 数字数据集(分类)
  4. sklearn.datasets.fetch_20newsgroups(subset=‘all’)
    新闻分类数据集
    subset: all所有, train训练集,test测试集
  5. sklearn.datasets.load_boston() 波士顿房价数据集
  6. sklearn.datasets.load_diabetes() 糖尿病数据集
监督学习-分类(K-近邻KNN、贝叶斯、决策树、集成学习随机森林、逻辑回归)
  1. sklearn.neighborsKNeighborsClassifier(n_neighbors=5)
    KNN算法, n_neighbors默认5
    knn.fit(x_train, y_train) 训练模型
    knn.predict(x_test) 预测测试集,得到预测测试集目标值
    knn.score(x_test, y_test) 得到准确率
    在这里插入图片描述

  2. sklearn.naive_bayes.MultinomialNB(alpha=1)
    alpha拉普拉斯平滑系数
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  3. sklearn.tree.DecisionTreeClassifier(criterion=‘gini’,max_depth=3)
    决策树
    criterion:默认gini系数,也可以是信息增益熵’entropy’
    max_depth:树的深度

  4. 信息熵
    在这里插入图片描述

  5. 信息增益
    在这里插入图片描述

  6. 条件熵
    在这里插入图片描述

  7. sklearn.tree.export_graphviz(estimator, out_file=‘文件名.dot’, feature_names=[特征名字])
    导出DOT格式树结构

  8. dot -Tpng tree.dot -o tree.png 转化dot为png图片

  9. sklearn.ensemble.RandomForestClassifier(n_estimators=10,criterion=‘gini’,max_depth=3, max_feature=‘auto’, bootstrap=True, min_samples_split=2)
    随机森林分类器
    n_estimators:森林里树木数量10,100,200
    criterion: 默认gini
    max_depth: 树最大深度
    max_feature: auto, sqrt, log2, None
    bootstrap: 默认True,放回抽样
    min_samples_split: 节点划分最少样本数
    min_samples_leaf: 叶子节点最小样本数

  10. sklearn.linear_model.LogisticRegression(solver=‘liblinear’, penalty=‘l2’, C=1)
    逻辑回归
    solver: 优化求解方式(默认liblinear迭代优化损失函数, sag:随机平均梯度下降)
    penalty: 正则化种类
    C: 正则化力度

  11. 激活函数-sigmoid函数
    在这里插入图片描述

  12. 对数似然损失
    在这里插入图片描述在这里插入图片描述

  13. sklearn.metrics.classification_report(y_true, y_pred, labels=[], target_names=[2, 4])
    精确率和召回率分类评估报告
    labels: 指定类别对应的数字
    target_names: 目标类别名字
    return : 返回每个类别的精确率和召回率

  14. TPR = TP / (TP + FN) 真阳性率
    所有真实类别为1的样本中,预测类别为1的比例

  15. FPR = FP / (FP + FN) 伪阳性率
    所有真实类别为0的样本中,预测类别为1的比例

  16. ROC曲线

  17. sklearn.metrics.roc_auc_score(y_true, y_score)
    AUC指标
    y_true: 每个样本真实类别,必须位0(反例),1(正例)标记
    y_score: 每个样本预测的概率值

监督学习-回归(线性回归、均方误差回归损失、岭回归Ridge)
  1. 损失函数-最小二乘法
    在这里插入图片描述
  2. 优化算法-正规方正
    在这里插入图片描述
  3. 优化算法-梯度下降
    在这里插入图片描述
  4. sklaern.linear_model.LinearRegression(fit_intercept=True)
    通过正规方程优化的线性回归
    fit_intercept: 是否计算偏置
    lr.coef_ 得到回归系数(权重)
    lr.intercept_ 得到偏置
  5. sklearn.linear_model.SGDRegressor(loss=‘squared_loss’, fit_intercept=True, learning_rate=‘invscaling’, eta0=0.01)
    通过SGD(梯度下降)优化的线性回归
    loss: 损失类型
    fit_intercept: 偏置
    learning_rate: 学习速率填充
    ‘constant’: eta = eta0
    ‘optimal’: eta=eta0/(alpha * (t + t0)) 默认
    ‘invscaling’: dta=dta0/pow(t, power_t)
    sgd.coef_ 得到回归系数
    sgd.intercept_ 得到偏置
  6. sklearn.metrics.mean_squared_error(y_true, y_pred)
    均方误差回归损失
    y_true: 真实值
    y_pred: 预测值
  7. sklearn.linear_model.Ridge(alpha=1, fit_intercept=True, solver=‘auto’, normalize=False)
    岭回归-带有L2正则化的线性回归
    alpha: 正则化力度,也叫λ(0-1,1-10)
    fit_intercept: 偏置
    solver:
    ‘auto’: 会根据数据自动选择优化方法、
    ‘sag’: 如果数据集、特征都比较大,选择该随机梯度下降优化
    normalize: 数据是否自动进行标准化
    rd.coef_ 得到回归权重
    rd.intercept_ 得到回归偏置
  8. sklearn.linear_model.RidgeCV(_BaseRidgeCV, RegressorMixin)
    具有L2曾泽华的线性回归,可以交叉验证
无监督学习(聚类:K-means、 降维:PCA)
  1. sklearn.cluster.KMeans(n_clusters=8, init=‘k-means++’)
    K-means聚类
    n_clusters: 开始聚类的中心数量
    init: 初始方法,默认k-means++
    labels_: 默认标记的类型,可以和真实值比较
    km.fit
    km.predict 标记
  2. 轮廓系数
    对于每个点i 为已聚类数据中的样本 ,b_i 为i 到其它族群的所有样本的距离平均值的最小值,a_i 为i 到本身簇的距离平均值。最终计算出所有的样本点的轮廓系数平均值
    在这里插入图片描述
  3. sklearn.metrics.silhouette_score(X, labels)
    平均轮廓系数性能评估指标
    X: 特征值
    labels:被聚类标记的目标值
模型选择与调优(交叉验证(CrossValidation)-超参数搜索-网格搜索GridSearch)
  1. sklearn.model_selection.GridSearchCV(estimator, param_grid=超参数,cv=3)
    estimator 估计其对象
    param_grid:估计器的超参数
    cv:分为几折训练集和验证机
    cv.fit
    cv.score(x_test, y_test) 准确率
    cv.best_score_ 交叉验证最好结果
    cv.best_estimator_ 最好的模型
    cv.cv_results_ 每次交叉验证后的准确率
模型的保存和加载
  1. from sklearn.externals import joblib 导包
  2. joblib.dump(estimator, ‘test.pkl’) 保存
  3. joblib.load(‘test.pkl’) 加载
  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值