numpy csdn,numpy 统计函数

  numpy csdn,numpy 统计函数

  本文将介绍如何从文件中加载数据,如何使用NumPy的基本数学和统计分析功能,如何学习读写文件,并尝试函数式编程和NumPy线性代数运算来学习NumPy的常用函数。需要什么可以参考。

  00-1010文件读取1、保存或新建文件2、读取csv文件函数loadtxt3、常用函数4、股票收益率等。5、对数收益和波动率6、日期分析总结。本文将以历史股票价格的分析为例,介绍如何从文件中加载数据,如何使用NumPy的基本数学和统计分析函数,如何学习读写文件,并尝试函数式编程和NumPy线性代数运算,学习NumPy的常用用法。

  

目录

 

  读写文件是数据分析的一项基本技能。

  CSV(逗号分隔值)格式是一种常见的文件格式。通常,数据库的转储文件是CSV格式的,文件中的每个字段对应数据库表中的列。

  NumPy中的loadtxt函数可以轻松读取CSV文件,自动拆分字段并将数据加载到NumPy数组中。

  

文件读入

 

  将numpy作为np导入

  I=np.eye(3) #eye(n)函数创建N维单位矩阵

  打印(一)

  Np.savext (test.txt ,i) # savext()创建并保存test.txt文件

  Savetxt()函数,如果有已存在的文件,更新它们;如果目录中没有文件,创建并保存test.txt文件。

  运行结果如下:

  [[1.0.0.]

  [0.1.0.]

  [0.0.1.]]

  

1、保存或创建新文件

 

  1)首先在保存程序的目录下创建一个名为data.csv的文件,并按如下所示设置数据:

  2)按如下方式读取文件:

  c,v=np.loadtxt(data.csv ,delimiter=,,usecols=(6,7),unpack=True)

  usecols的参数是一个元组,用来获取7到8字段的数据,也就是上面文件中股票的收盘价和成交量数据。当unpack参数设置为True时,不同列的数据分别存储,即收盘价和成交量的数组分别赋给变量C和V。

  

2、读取csv文件的函数loadtxt

 

  数量加权平均、时间加权、算术平均、中位数、方差等。

  将numpy作为np导入

  I=np.eye(3) #eye(n)函数创建N维单位矩阵

  打印(一)

  Np.savetxt (test.txt ,i) # savetxt创建并保存测试文件

  #读取csv文件

  c,v=np.loadtxt(data.csv ,delimiter=,,usecols=(6,7),unpack=True)

  “”usecols的参数是一个元组,用于获取第7到第8个字段的数据,即股票的收盘价和成交量。当unpack参数设置为True时,不同列的数据将被分开存储,即数据将被分开收集。

  价格和成交量的数组被分配给变量C和V

  Vwap=np.average(c,weights=v) #调用了average函数,使用v作为权重参数,

  打印(vwap)

  打印( n )

  Print(np.mean(c)) #算术平均值

  打印( n )

  t=np.arange(len(c))

  印刷(吨)

  打印( n )

  Twap=np.average(c,weights=t) #按时间加权

  打印(twap)

  打印( n )

  h,l=np.loadtxt(data.csv ,分隔符=,,usecols=(4,5),unpack=True)

  #获取字段4到字段5的数据,即股票的最高价和最低价。

  Print (np.max(h)) #获取最大max()

  打印(np.min(l)

  ) #获取最小值min()

  print(n)

  print( np.ptp(h) ) # 用ptp()函数计算了极差,即最大值和最小值之间的差值

  print( np.ptp(l) )

  print(n)

  print( np.median(c)) # 中位数median()函数,即多个数据中,处于中间的数

  print( np.msort(c))#msort(( ))函数对价格数组进行排序,可以验证上述中位数

  #方差的计算

  variance = np.var(c) #方差函数var()

  print(variance)

  用代码、excel进行相关计算,运行结果如下:

  

 

  为后面计算,将data.csv中的数据多增加几行,修改如下并保存(为后面日期读写与修改,日期形式修改成如下):

  

603112,2022-4-1,,13.56,13.97,13.55,13.87,3750000603112,2022-4-2,,13.75,14.25,13.69,14.03,4003500603112,2022-4-3,,13.69,14.11,13.61,13.95,3956500603112,2022-4-4,,14.3,14.3,13.73,13.89,4250000603112,2022-4-5,,14.1,14.5,13.93,14,4013500603112,2022-4-6,,14.5,15.4,14.35,15.4,9056500603112,2022-4-7,,16,16.94,15.85,16.94,3750000

 

  

 

  

4、股票的收益率等

 

  股市中最常见的就是涨幅,也就是今日收盘价相对昨日涨跌的比例,即 (今日收盘价-昨天收盘价)/昨日收盘价*100,numpy中的 diff() 函数可以返回一个由相邻数组元素的差值构成的数组,由于相邻数据相减,因此diff()数组数据较原数组少一个。

  如上述修改后,有7天的收盘价,diff()计算出的结果就只有6位,

  

import numpy as np

 

  运行结果,代码、excel进行相比较:

  

 

  

 

  

5、对数收益与波动率

 

  1)对数收益:log 函数得到每一个收盘价的对数,再对结果使用 diff 函数即可,

  

logreturns = np.diff( np.log(c) )

 

  运行结果:

  

[ 0.01146966 -0.00571839 -0.00431035 0.00788817 0.09531018 0.09531018]

 

  

 

  2) where的作用

  where 函数可以根据指定的条件返回所有满足条件的序列索引值,比如上述logreturns中有两个小于0的数据。

  

posretindices = np.where(results1 > 0)

 

  运行结果:

  

Indices with positive returns1 (array([0, 3, 4, 5], dtype=int64),)

 

  

 

  3)波动率:波动率=对数收益率的标准差除以其均值,再除以交易周期倒数的平方根。下面代码分别为以年、月进行统计的波动率.

  

annual_volatility =(np.std(logreturns)/np.mean(logreturns))/np.sqrt(1./252.)#使用浮点数才能得到正确的结果

 

  

 

  

6、日期分析

 

  处理日期总是很烦琐。NumPy是面向浮点数运算的,因此需要对日期做一些专门的处理。

  通过上述代码,我们知道,修改函数np.loadtxt('data.csv', delimiter=',', usecols=(6,7), unpack=True)中的参数usecols=(6,7)就可以读取不同的列,日期是在第2列,即下标应该为1(数列下标是从0开始的),可以重新定义新日期数列并获取后存入。

  代码如下:

  

dates, c=np.loadtxt(data.csv, delimiter=,, usecols=(1,6), unpack=True) #读取下标为1、6的数据,分别存入到dates和c数列中。

 

  但实际运行过程中会报错,

  

 

  代码需要作如下修改:

  

import numpy as np

 

  运行结果:[4. 5. 6. 0. 1. 2. 3.],也是从0开始,到6结束。为了更好地说明数据,可以采用真实的数据,即从通信达软件直接下载真实的交易数据,如下图所示:

  

 

  (注意:较原来少了一列空格列)

  修改代码如下:

  

import numpy as np

 

  运行结果:

  

 

  如上图,导出有420天数据。

  按周一到周五,统计相关数据:

  

averages = np.zeros(5) #创建包含5个元素的数组,保存交易日收盘价,0-4分别代表周一到周五五个交易日

 

  当然除了上述外,还可以求得420天里的最大值、最小值以及交易日平均值中最大值、最小值等,对代码进行如下修:

  

import numpy as np

 

  运行结果如下:

  

 

  

 

  

总结

 

  本篇初步导入了真实的股票交易信息,并利用numpy常见函数对进行了初步的计算,列举了下列常用函数:

  loadtxt() 函数可以方便地读取CSV文件,自动切分字段,并将数据载入NumPy数组。

  savetxt()创建并保存test.txt文件

  np.loadtxt('data.csv', delimiter=',', usecols=(6,7),)usecols参数用来选择读取的数列

  np.average(c, weights=v) 加权平均,将v作为权重参数使用,

  np.mean(c)) #算术平均值

  np.max(h)) #获取最大值max()

  np.min(l)) #获取最小值min()

  np.ptp(h) ) 用ptp()函数计算了极值差,

  np.median(c)) 中位数median()函数,即多个数据中,处于中间的数

  np.msort(c))函数对价格数组进行排序,

  np.var(c) 方差函数var()

  np.diff(c) 函数可以返回一个由相邻数组元素的差值构成的数组

  np.std(results) # 标准差

  np.diff( np.log(c) )

  np.where(results1 > 0) 选择

  np.sqrt()#平方根sqrt(),浮点数

  s.decode('ascii') 将字符串s转化为ascii码

  np.take(c,indices) #take函数获取各个工作日的收盘价。

  np.argmax(averages)) #argmax函数返回数组中最大元素的索引值

  np.argmin(averages))#argmin函数返回数组中最小元素的索引值

  以上就是Python数据分析之NumPy常用函数使用详解的详细内容,更多关于Python NumPy常用函数的资料请关注盛行IT软件开发工作室其它相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: