马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 不二如是 于 2020-7-4 07:20 编辑
上一讲我们了解了一下深/浅拷贝。
本讲来学习视图。
爬了一份 90 年到 19 年的上证指数(收点鱼币):
上证指数.zip
(198.28 KB, 下载次数: 22, 售价: 2 鱼币)
上证指数(SSE Composite Index)全称是上海证券交易所股票价格综合指数(简称上证综指、上证综合、沪综指或沪指)。
可以理解为股市的晴雨表。
我们先导入 Numpy 和文件:
import numpy as np
sseData = np.genfromtxt('上证指数.txt')
看一下 sseData 内容:
为什么会这样呢?
看一下 dtype:
显示为 float64,nan 上一讲我们说过是因为有中文。
日期参数变为浮点到没关系。
往往日常操作中,最关心的就是:
日期(0 列),收盘价(4 列),涨跌幅(6 列)
这几个参数实用性比较高。
这次我们通过 usecols 方法来直接获取指定列:
是不是数据一下就干净很多。
科学计数法,可以通过设置 np.set_printoptions(suppress=True) 来取消:
数据一下又干净了对不对。
我们现在只是找到前 10 行,但如果我要看:
2018 年上半年的数据(大于 20171231 且小于 20180701)
怎么办呢?
没错,就是用:
写筛选条件:
(sseData1[:,0]>20171231)&(sseData1[:,0]<20180701)
输出:
找到符合条件的布尔值。
将其存储到变量中:
找到我们要的年份数据啦~
最后一列的数据,如果为正说明当天涨了,反之为降。
新的需求:
用一个数组记录最后一列数据,正的标记为 1,负的标记为 -1,0 还是 0 。
那就先把最后一列取出来:
然后实现上面的条件:
哇塞,是不是很轻松就搞定啦?!
既然为了分析,那就可以将上面的数据添加到 targetData 中。
新手最常用的办法就是使用 Numpy 中的 np.c_[d1,d2]:
我擦,怎么有两行??
往上看看代码,吖,这里的赋值很像“浅拷贝”,直接修改原数据!
在 Numpy 中这种不叫浅拷贝,而是叫“视图”。
如果你理解了上一讲,就知道只需用“深拷贝”就可以。
咩错,在 Numpy 中叫副本,修改代码:
再重新跑一下添加:
还可以继续分析~
但是所有的基础都是上面这些套路!
下一讲我们来说 Numpy 的合并数组。
源代码:
10ViewCopy.zip
(439 Bytes, 下载次数: 1, 售价: 3 鱼币)
如果有收获,别忘了评分 :
如果想看更多,请订阅 淘专辑( 传送门)( 不喜欢更要订阅 ) |