Numpy 常用函数及读写操作
来源:互联网 发布:什么是根域名服务器 编辑:程序博客网 时间:2024/05/29 17:40
文件读写
(1)txt格式
首先创建一个单位矩阵,然后将其写入txt文件(自定义存储路径)
import numpy as npa=np.eye(3)np.savetxt('D:/a.text',a)
打开建立的txt文件看看
(2)csv格式
loadtxt函数可以方便地读取CSV文件,自动切分字段,并将数据载入NumPy数组。下面都以苹果公司的历史股价数据为例展开
第一列:股票代码以标识股票
第二列:dd-mm-yyyy格式的日期
第三列为空
之后依次是开盘价、最高价、最低价、收盘价和当日成交量
c,v=np.loadtxt('data.csv', delimiter=',', usecols=(6,7), unpack=True)
设置分隔符为‘,’,usecols的参数为一个元组,以获取第7字段至第8字段的数据,即收盘价和成交量,unpack参数设置为True,意思是分开存储不同列的数据。
写入CSV文件
np.savetxt("weeksummary.csv", weeksummary, delimiter=",", fmt="%s")
最后是一个类型指定字符,在我们的例子中指定为字符串类型。
(3)日期读入
读入日期不能像之前一样。不然会有
ValueError: invalid literal for float(): 28-01-2011
Numpy尝试把日期直接转换成浮点数会引发错误。
用参数converters,是数据列和转换函数之间进行映射的字典,首先写出转换函数将日期转成星期几,
-星期一 0
-星期二 1
-星期三 2
-星期四 3
-星期五 4
-星期六 5
-星期日 6
def datestr2num(s): return datetime.datetime.strtime(s,'%d-%m-%Y').date().weekday()dates,close=loadtext('data.csv',delimiter=',',usecols=(1,6),converters={1:datestr2num},upstack=True)
加权平均
(1)用vwap(Volume-Weighted Average Price)代表成交量加权平均价格
vwap=np.average(c,weights=v)
(2)用twap(Time-Weighted Average Price)代表时间加权平均价格
基本的思想:近期价格权重大
用arange函数创建一个从0开始依次增长的自然数序列,自然数的个数即为收盘价的个数
t = np.arange(len(c))twap=np.average(t,weights=t)
算术平均
mean=np.mean(c)
取值范围
再次读入数据,将每日最高价和最低价的数据载入数组
h,l=np.loadtxt('data.csv',delimiter=',', usecols=(4,5), unpack=True)
获取最大、最小值和价格区间
highest=np.max(h)lowest=np.min(l)interval_h=np.ptp(h)interval_l=np.ptp(l)
统计分析及常用函数
(1) 中位数
只获取收盘价数据即可
c=np.loadtxt('data.csv', delimiter=',', usecols=(6,),unpack=True)med=np.meidan(c)
(2)排序
sorted_close=np.msort(c)
(3)方差
variance=np.var(c)
(4)差分
diff=np.diff(c)
(5)标准差
stand_dev=np.std(c)
(6)开方
sqrt=np.sqrt(c)
(7)返回满足条件的数组元素的索引值
indices=np.where(dates==6)
(8)按照索引值从数组中取出相应的元素
np.take(close,indices)
(9)apply_along_axis函数
调用另外一个由我们给出的函数,作用于每一个数组元素上,并且可以指定轴。
dates, open, high, low,close=np.loadtxt('data.csv',delimiter=',', usecols=(1, 3, 4,5, 6), converters={1: datestr2num}, unpack=True)close = close[:16]dates = dates[:16]# get first Mondayfirst_monday = np.ravel(np.where(dates == 0))[0]# get last Fridaylast_friday = np.ravel(np.where(dates == 4))[-1]weeks_indices = np.split(weeks_indices, 3)def summarize(a,o,h, l, c): monday_open = o[a[0]] week_high = np.max( np.take(h, a) ) week_low = np.min( np.take(l, a) ) friday_close = c[a[-1]] return("APPL", monday_open, week_high, week_low, friday_close) weeksummary = np.apply_along_axis(summarize, 1, weeks_indices, open, high, low, close)
- Numpy 常用函数及读写操作
- numpy常用函数及实例
- numpy计算及常用函数
- Numpy常用操作
- numpy 常用操作
- numpy 常用操作
- numpy常用操作
- numpy常用操作
- c语言文件操作常用函数及读写文件代码举列
- Numpy常用函数
- Numpy:常用函数
- numpy常用函数
- numpy常用函数
- numpy常用函数笔记
- 熟悉 NumPy 常用函数
- 掌握 NumPy 常用函数
- numpy常用函数总结
- numpy中的常用函数
- java打印文件夹以及文件的路径打印
- 【结论】【状压DP】
- 旋转数组的最小数字
- R语言如何导入数据
- CodeForces 699C Vacations
- Numpy 常用函数及读写操作
- 欢迎使用CSDN-markdown编辑器
- android 获取ip地址,获取2,3,4g,wifi状态等
- 转载:python使用urllib2抓取防爬取链接
- 剑指offer——和为s的两个数字且乘积最小
- 解决Android SDK Manager无法更新的问题[设置代理]
- google地图、高德地图基于基站定位位置纠偏
- java(九九乘法表输出1,3,5,7,9)
- POJ2115C Looooops(2)