10 - 副本copy/视图view|【实操上证指数】
本帖最后由 不二如是 于 2020-7-4 07:20 编辑上一讲我们了解了一下深/浅拷贝。
本讲来学习视图。
爬了一份 90 年到 19 年的上证指数(收点鱼币):
上证指数(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)
怎么办呢?
没错,就是用:
**** Hidden Message *****
写筛选条件:
(sseData1[:,0]>20171231)&(sseData1[:,0]<20180701)
输出:
找到符合条件的布尔值。
将其存储到变量中:
找到我们要的年份数据啦~
最后一列的数据,如果为正说明当天涨了,反之为降。
新的需求:
用一个数组记录最后一列数据,正的标记为 1,负的标记为 -1,0 还是 0 。
那就先把最后一列取出来:
然后实现上面的条件:
哇塞,是不是很轻松就搞定啦?!
既然为了分析,那就可以将上面的数据添加到 targetData 中。
新手最常用的办法就是使用 Numpy 中的 np.c_:
我擦,怎么有两行??
往上看看代码,吖,这里的赋值很像“浅拷贝”,直接修改原数据!
在 Numpy 中这种不叫浅拷贝,而是叫“视图”。
如果你理解了上一讲,就知道只需用“深拷贝”就可以。
咩错,在 Numpy 中叫副本,修改代码:
再重新跑一下添加:
还可以继续分析~
但是所有的基础都是上面这些套路!
下一讲我们来说 Numpy 的合并数组。
源代码:
如果有收获,别忘了评分{:10_281:} :
http://xxx.fishc.com/forum/201709/19/094516hku92k2g4kefz8ms.gif
如果想看更多,请订阅 淘专辑(传送门)(不喜欢更要订阅{:10_297:} ) Numpy 太厉害了,我要学习{:10_275:} Numpy 太厉害了,我要学习{:10_275:} Numpy 太厉害了,我要学习{:10_275:} 不二大讲 Numpy 以 10 鱼币每股的价格买入 1000 股,再以 20 鱼币每股的价格卖出,净赚 10000 鱼币 _2_ 发表于 2020-2-16 20:48
以 10 鱼币每股的价格买入 1000 股,再以 20 鱼币每股的价格卖出,净赚 10000 鱼币
成功买入不难,但愿你能成功卖出 不二如是 发表于 2020-2-16 22:29
成功买入不难,但愿你能成功卖出
可惜我还没有 10000 鱼币{:10_266:} Numpy 太厉害了,我要学习{:10_275:} Numpy 太厉害了,我要学习{:10_275:} Numpy 太厉害了,我要学习{:10_275:} Numpy 太厉害了,我要学习{:10_275:} 科学技术法应改为科学计数法
@不二如是 快来看看 _2_ 发表于 2020-7-3 20:27
科学技术法应改为科学计数法
@不二如是 快来看看
已修改{:10_310:} 不二如是 发表于 2020-7-4 07:20
已修改
{:10_279:}{:10_254:} Numpy 太厉害了,我要学习{:10_275:} 又要学新知识啦 Numpy 太厉害了,我要学习{:10_275:} Numpy 太厉害了,我要学习{:10_275:}
页:
[1]