zoukankan      html  css  js  c++  java
  • 加载文件

    加载文件

    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()

     

  • 相关阅读:
    java TreeSet的排序之定制排序
    java TreeSet的排序之自然排序
    java TreeSet
    java Set接口(元素不可以重复)
    poj 3735 Training little cats(构造矩阵)
    进程创建/退出父子关系的调整
    安装R语言的包的方法
    项目搭建之路(上)
    为什么百度首页的HTML源代码最后一行要多一行?浪费空间呀!
    机器学习之梯度下降法
  • 原文地址:https://www.cnblogs.com/maplethefox/p/11454523.html
Copyright © 2011-2022 走看看