文:蓝兔子读难NOTES
图:配图 来源于网络
Python3 量化分析从小白到破产笔记
常用运算符
编码:0005
最前面先放个简易目录,理清思绪好上路。
python基础:
当前=>常用运算符:平方、与或非~
程序3种执行结构:顺序、分支、循环
高阶数据类型:列表、字典~
函数:定义、调用、传参~
高级特性:切片、迭代~
文件读写:打开、保存~
异常处理:~
常用内置函数汇总:~
常用内置模块:os、datetime~
python 包:numpy、pandas~
数据获取:
tushare(直接获取交易数据)
处理和分析数据:
Numpy(数组、矩阵)
Pandas(表格、excel)
Scipy(数理统计)
可视化:
Matplotlib(画图)
seaborn(画图)
计算机是专门用于计算的机器,而程序就是要告诉计算机,进行怎样的计算。本质上来说,对于计算机编程语言而言,无论是C系列也好,还是Java系也好,又或者是我们现在学的python,没有谁优谁劣,只有谁更合适。
如果你是要写一个操作系统,比如写个「中dows」,那这边建议你使用C语言和汇编,因为它们可以直接操作硬件。当然你想做个智能手表,搞个嵌入式软件也都是C为主的天下。另外,windows的内核就是用C和汇编写的。但是在全民编程的时代,作为我们这种半路出家的小白,想要进行量化类的应用,Python绝对是再合适不过了-你想要的功能,几乎都有前辈给你造好了零件,你只需要拼装出你喜欢的车就行-一切皆乐高。
在进行量化分析时,我们其实就是在对数据进行收集、整理、分析,然后预测和判断,再进行相关的决策,之后进行监督和反馈。这些过程无一不是在对数据进行运算。在python 中,主要包括以下几类运算:
赋值运算
算术运算
比较运算
逻辑运算
按位的逻辑运算
成员元素
身份运算
运算优先级
1、赋值运算就相当于是写标签和贴标签的过程。要进行赋值运算,我们先要有一个标签名,比如stock_price,赋值就是在stock_price标签上写上一个数9.8,并同时把标签贴到装着9.8这个数的抽屉上。赋值语句使用等号 “=”,表示为 stock_price = 9.8 。赋值运算符“=”会把一行语句分成左右两部分,把右边的结果赋给左边的标签。右边可以是一个具体的值,也可以是一个过程,该过程的结果将被赋值给左边标签。
2、算术运算我们之前的内容其实一直在使用,我们最常见的加减乘除符号和自然语言是一样的,但是要注意计算机键盘没有➗,所以用“/”代替,同理✖️用“*”号代替。除了最基础的加减乘除外,python还提供了另外两个特殊的除法运算:求余和取整。求余就是获得除了之后的余数,而取整是取得相除之后的整数部分。另外,计算开方时用两个*表示。
注意,使用“//”获得除法结果的整数部分时,它是往下取的整数,如上图红色部分所示。
3、比较运算,我们也经常使用,一般用作判断:如果股票A的价格大于多少就怎样。这里面就有比较,比较运算符如下:
比较的结果如果为真,就会返回True(1),如果不成立,就会返回假(0)。
注意区分赋值运算符”=“与比较运算符“==”。
4、逻辑运算符,进行逻辑运算,也就我们常见的都成立、都不成立、其中一个成立等情况的判断。逻辑运算要分成两种情况,一种是bool型数据的逻辑运算,一种是非bool型的逻辑运算。
and 是有0则0,从左到右找0,找到了0就是不成立,直接返回不成立,不管后面的东西;or 是有1则1,从左到右找1,找到了1就成立,返回成立,不管后面的东西。
5、按位的逻辑运算,就是将数据表示为二进制位之后,在对应位上进行逻辑运算。也遵循与、或、非的基本原则。按位操作我们遇到的应该并不多。
6、成员运算,由于现在还没有学数组之类的数据,可能不好理解。成员运算符的符号是in,就是判断某一个成员有没有在某组数据里面。通常结合逻辑 not 判断没有在里面。
7、身份运算,身份运算就是判断两个标签是不是挂在了同一个抽屉上,标识符为 is ,同样可以与 not 搭配。
这里有一个问题需要注意,“==”比较的是两个标签对应抽屉里面的东西是不是一样,而“is”比较的是两个标签是不是挂到了同一个抽屉上。
8、运算优先级,python基本上遵循先加减、后乘除、再开方,最后赋值的优先级,但是我们可以用小括号强制改变优先级。
一门语言的内容会非常多,即便捡那些重要的内容,我们也很难全记住。所以,重要的不是记住全部,而是知道有这个东西,用到的时候再查询资料就好了。等我们用得多了,那些常用的自然也就记得了。
下次给大家分享一个的小案例 「随机生成权重买入不同股票,计算各个权重下组合的收益和方差(风险)」,并画出收益和方差分布,有点像马科维茨有效前沿,记得来围观哦!
相关文章(关注gzhh:CFArabbit获取更多内容)
网友评论