首页 > 其他 > 详细

数据分析(三)

时间:2019-09-03 18:37:04      阅读:100      评论:0      收藏:0      [点我收藏+]

加载文件

numpy提供了函数用于加载逻辑上可被解释为二维数组的文本文件,格式如下:

数据项1 <分隔符> 数据项2 <分隔符> ... <分隔符> 数据项n
例如:
AA,AA,AA,AA,AA
BB,BB,BB,BB,BB
...
或:
AA:AA:AA:AA:AA
BB:BB:BB:BB:BB
...

调用numpy.loadtxt()函数可以直接读取该文件并且获取ndarray数组对象:

import numpy as np
# 直接读取该文件并且获取ndarray数组对象 
# 返回值:
#     unpack=False:返回一个二维数组
#     unpack=True: 多个一维数组
np.loadtxt(
    ../aapl.csv,          # 文件路径
    delimiter=,,          # 分隔符
    usecols=(1, 3),         # 读取1、3两列 (下标从0开始)
    unpack=True,            # 是否按列拆包
    dtype=U10, f8,        # 制定返回每一列数组中元素的类型
    converters={1:func}     # 转换器函数字典
)    

案例:读取aapl.csv文件,得到文件中的信息:

import numpy as np
import datetime as dt
# 日期转换函数
def dmy2ymd(dmy):
    dmy = str(dmy, encoding=utf-8)
    time = dt.datetime.strptime(dmy, %d-%m-%Y).date()
    t = time.strftime(%Y-%m-%d)
    return t
dates, opening_prices,highest_prices,     lowest_prices, closeing_pric es  = np.loadtxt(
    ../data/aapl.csv,        # 文件路径
    delimiter=,,            # 分隔符
    usecols=(1, 3, 4, 5, 6),            # 读取1、3两列 (下标从0开始)
    unpack=True,
    dtype=M8[D], f8, f8, f8, f8,        # 制定返回每一列数组中元素的类型
    converters={1:dmy2ymd})

1.绘制dates与收盘价的折线图:

import numpy as np
import datetime as dt
import matplotlib.pyplot as mp
import matplotlib.dates as md

# 绘制k线图,x为日期
mp.figure(APPL K, facecolor=lightgray)
mp.title(APPL K)
mp.xlabel(Day, fontsize=12)
mp.ylabel(Price, fontsize=12)

#拿到坐标轴
ax = mp.gca()
#设置主刻度定位器为周定位器(每周一显示主刻度文本)
ax.xaxis.set_major_locator( md.WeekdayLocator(byweekday=md.MO) )
ax.xaxis.set_major_formatter(md.DateFormatter(%d %b %Y))
#设置次刻度定位器为日定位器 
ax.xaxis.set_minor_locator(md.DayLocator())
mp.tick_params(labelsize=8)
dates = dates.astype(md.datetime.datetime)

mp.plot(dates, opening_prices, color=dodgerblue,
        linestyle=-)
mp.gcf().autofmt_xdate()
mp.show()

 

数据分析(三)

原文:https://www.cnblogs.com/maplethefox/p/11454523.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!