关于numpy的基础知识随笔(二)

2018-09-03  本文已影响3人  okaw

     最近在读一本关于numpy的书,这个框架主要是用于数据分析,所以书中模拟的是对苹果股票数据集的日期分析。这里分享的是对这个xi首先,我们要读入收盘价数据。随后,根据星期几来切分收盘价数据,并分别计算平均价格。 最后,我们将找出一周中哪一天的平均收盘价最高,哪一天的最低。在我们动手之前,有一个善 意的提醒:你可能希望利用分析结果在某一天买股票或卖股票,然而我们这里的数据量不足以做 出可靠的决策,请先咨询专业的统计分析师再做决定!

        1.因为numpy是面向浮点数的,因此需要对日期做一些处理,因为刚开始numpy会尝试将日期转换为浮点数,我们需要做的是显式地告诉NumPy怎样来转换 日期,而这需要用到loadtxt函数中的一个特定的参数。这个参数就是converters,它是一本 数据列和转换函数之间进行映射的字典。注意:编译器在打开data.txt文件时,将表格里的第1列数组值提取出来返回给dates,第二列值是日期格式字符串,但因为我们是以二进制编码的格式打开第二列值是,返回的值字节字符串bytes,所以需要把它变回string,则对字符串解码用函数decode('asii'),变成string格式。

转换函数如下:

把日期转换为代表周几的数字

我们将日期作为字符串传给datestr2num函数,如“2015-01-02”。这个字符串首先会按照 指定的形式"%Y-%m-%d"转换成一个datetime对象。补充一点,这是由Python标准库提供的功能, 与NumPy无关。随后,datetime对象被转换为date对象。最后,调用weekday方法返回一个数 字。如同你在注释中看到的,这个数字可以是0到6的整数,0代表星期一,6代表星期天。当然, 具体的数字并不重要,只是用作标识,形如这样的格式:

# 星期一 0

# 星期二 1

# 星期三 2

# 星期四 3

# 星期五 4

# 星期六 5

# 星期日 6

输出的结果中,之所以没有数字5和6 ,是因为星期六和星期天属于周末,股票交易在周末是休市的。

数据集中周几代表的数字

2.定义一个数组,来存储周几的收盘价平均值,包含5个元素的数组,分别代表一周的5个工作日。数组元素将初始化为0。

创建一个数组

3.我们已经知道,where函数会根据指定的条件返回所有满足条件的数组元素的索引值。 take函数可以按照这些索引值从数组中取出相应的元素。我们将用take函数来获取各个工作日 的收盘价。在下面的循环体中,我们将遍历0到4的日期标识,或者说是遍历星期一到星期五,然 后用where函数得到各工作日的索引值并存储在indices数组中。在用take函数获取这些索引值 相应的元素值。最后,我们对每个工作日计算出平均值存放在averages数组中。

分析过程

4.通过结果可以得出苹果股票在星期五(4)是最便宜的一天而星期一(0)是最值钱的一天

分析结果

能力有限,理解错误之处欢迎大家批评指正,待更。。。。。。

上一篇下一篇

猜你喜欢

热点阅读