常用类库
使用anaconda进行第三方类库的下载管理,一些类库默认channel中不存在,需要使用anaconda的pip进行安装:
命令行进入anaconda的bin目录,使用pip3 install 类库名,进行安装
Numpy
数值计算
常用函数
| 函数 | 示例 | 用途 |
|---|---|---|
| random.normal | random.normal(loc=0.0, scale=1.0, size=1000) loc:期望值,scale:标准差即振幅/离散程度,size:数量 | 生成正态分布序列 |
| random.randint | numpy.random.randint(low, high=None, size=None, dtype=’l’) | 生成随机整数 |
| random.randn | numpy.random.randn (2,3) 返回2行3列矩阵,由标准正态分布样本填充 | 标准正态分布中返回一个或多个样本 |
| random.rand | numpy.random.rand (d0,d1,…dn) | 标准正态分布中随机样本位于 [0, 1) 中 |
| range | range(0,10,2) 从0到10步长为2取5个数,左闭右开 | 取数 |
| roll | roll(data,1) | 将序列中的数值循环右移1位 |
| linspace | linspace(0.5, 7.5, 1000) 起始值/终点值/数量 | 创建等差数列 |
| where | where(condition, x, y) | x if condition else y |
| cumsum/cumprod | data.cumsum()/cumprod() | 返回一个一维数组,每个元素都是之前所有元素的 累加和 和 累乘积,参数是 number 或 array |
| zeros | zeros(4, 7) 4X7的二维矩阵 | 数组转矩阵,缺失数据用0填充。类似的还有ones()、empty() |
| shape | matrix = [[1, 1, 1], [2, 2, 2]] print(np.shape(matrix)) --> [2,3] 2行3列 | 返回对象的形状 |
| sign | sign(x - y) x > y 返回 1.0 x < y 返回-1.0 | 获取差值符号 |
Panda
数据分析和统计
常用函数
| 函数 | 示例 | 用途 |
|---|---|---|
| data_range | date_range('2010-01-01',freq='D',periods=1000), 起始时间/时间间隔/数量 | 生成DatetimeIndex格式的日期序列 |
| DataFrame | DataFrame({'列名': 数据集合, 'price range': pct_change}, index=dd) | 用于生成DataFrame |
| DataReader | #从雅虎获取上证指数的2017.1.1日至今的交易数据 df_stockload = pandas_datareader.data.DataReader("000001.SS", "yahoo", datetime.datetime(2017,1,1), datetime.date.today()) | 获取股票数据 |
| to_datetime | pd.to_datetime(df_sh.date) | 转换行索引为时间索引 |
| drop | drop(axis=1, columns='date', inplace=True) | 删除某一列 |
| values | print(df_stockload.values) # 访问全部元素数值 """ [[ 3349.05297852 3314.03100586 3314.03100586 3348.32592773 1. 3348.32592773] [ 3379.91503906 3345.2890625 3347.74291992 3369.10791016 2. 3369.10791016] ...... [ 3495.09301758 3424.41894531 3478.66992188 3446.97998047 3. 3446.97998047] [ 3463.1640625 3388.86010742 3419.22509766 3462.08105469 4. 3462.08105469]] """ | 访问 DataFrame 全部元素数值,以 numpy.ndarray 数据类型返回 |
| index/columns | 查看行索引/列索引信息 | |
| loc | DataFrame.loc['2018-01-02',['High','Low']]选取了 '2018-01-02' 行对应的 'High','Low' 这两列的元素内容 | 通过标签方式选取数据 |
| iloc | DataFrame.iloc[0:2] 选取了前两行,所有列对应的元素。 DataFrame.iloc[0:2,0:1] 选取了前两行,第一列对应的元素。 DataFrame.iloc[[0,2],[0,1]] 访问到了第 0 行和第 2 行,第一列和第二列对应的元素 | 通过位置方式选取数据 |
| rolling | DataFrame.rolling(window=20).mean() 20元素的均值 | 获取窗口内元素 |
| dropna | DataFrame.rolling.dropna(axis=0,how='any',inplace=True)#NAN值删除 参数 axis=0 表示删除包含缺失值行,axis=1 表示删除包含缺失值列;参数 how=any 表示只要有一个缺失值就删除该行或列,how=all 表示只有当所有值都为缺失值时才删除该行或列 axis的解释:www.cnblogs.com/rrttp/p/802… | 删除包含nan值的行或列 |
| apply | # 求每列的最大值与最小值的差 a = df.apply(lambda row:row.max()-row.min()) # 求每行的最大值与最小值的差 b = df.apply(lambda column:column.max()-column.min(), axis=1) blog.csdn.net/Evan_Blog/a… | 将函数应用到由列或行形成的一维数组上 |
| resample | DataFrame.price.resample('1min', closed='left', label='left').ohlc() ohlc() 用于汇集开盘价、最高价、最低价、收盘价等数据 | 数据进行时间序列上的重采样 |
Tushare
免费、开源的 python 财经数据接口包
常用函数
| 函数 | 示例 | 用途 |
|---|---|---|
| 旧版-get_hist_data | get_hist_data('sh',start='2017-01-01',end=datetime.datetime.now().strftime('%Y-%m-%d')) 获取上证指数 2017 年 1 月 1 日至今的交易数据 | 返回基本的开盘价(open)、最高价(high)、收盘价(close)等数据外,还包括涨跌幅、均价等指标数据,但是它的缺点是不能获取股票自上市以来的所有日线数据 |
| 旧版-get_k_data | #get_k_data 返回2008年数据 df_sh=ts.get_k_data('sh',start='2008-01-01',end=datetime.datetime.now().strftime('%Y-%m-%d')) print(df_sh.head()) | 获取数据的速度更快些,可以返回每一只股票从上市开始到当前交易日的所有日线数据 |
| 新版-daily | daily(ts_code='000001.SZ', start_date='20180101', end_date='20190101') | 获取数据 |
AkShare
基于 Python 的开源金融数据接口库
常用函数
| 函数 | 示例 | 用途 |
|---|---|---|
| stock_zh_a_spot | ak.stock_zh_a_spot() | 单次返回所有 A 股上市公司的实时行情数据 |
| stock_zh_a_daily | stock_zh_a_daily(symbol="sh600000", factor="") | 某A股上市公司的所有历史行情 |
Matplotlib
绘图
常用函数
| 函数 | 示例 | 用途 |
|---|---|---|
| figure | figure(figsize=(12, 8)) 长度/宽度 | 创建图表并设置大小 |
| plot | plot(x, y, '--g', lw=2, label='sin(x)') # lw:line width,用于设置线条宽度 # '--g':结合linestyle和color,线条使用虚线,颜色使用绿色 # label:设置线条的标签为'sin(x)' # c:颜色 | 绘制线条图形 |
| xlim/ylim | xlim(0, 10) ylim(-1.5, 1.5) | 调整坐标刻度范围 |
| xlabel/ylabel | plt.xlabel('X axis') plt.ylabel('Y axis') | 设置x轴/y轴的显示标签 |
| xtickets/ytickets | plt.xticks(np.arange(0,10,2),['2015-07-02','2015-08-02','2015-09-02','2015-10-02','2015-11-02'],rotation=45)location 为浮点数或整数组成的列表,表示坐标轴上坐标的位置。labels 是与 location 等长的字符串列表,表示坐标的显示标签。rotation 参数可旋转调节坐标标签,当坐标密集时可避免标签重叠 | 设置x轴/y轴的坐标标签 |
| grid() | plt.grid(True, ls=':', color='r', alpha=0.5) | 设置网格线条 |
| title() | 设置标题 | |
| legend | plt.legend(loc='upper right')upper left(左上角)、upper center(中上)、upper right(右上角)、lower left(左下角)、 lower center(中下)、 lower right(右下) | 增加图例显示,当多条曲线显示在同一张图中时,便于识别不同的曲线 |