为炒股而努力自学Python ->量化交易:知识储备**
说明:从淘宝店购得一份学习资料带视频教程:
《量化金融从入门到精通 》作者:华尔街学堂
先跟着撸一个从头到尾吧!
第一章 金融人Python入门
这章内容不多,大概是说Python不难,容易学习掌握,别担心,稍加用心就能学会并掌握。
第二章 Python基本知识(一)
2.1 Python安装与配置
Jupyter notebook安装Nbextensions
pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user
如不成功继续输入
jupyter contrib nbextension install --user --skip-running-check
安装yapf
conda install yapf
Jupyter Notebook设置
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from IPython.core.interactiveshell import InteractiveShell
import openpyxl
InteractiveShell.ast_node_interactivity = "all"
pd.set_option('max_columns', 1000)
pd.set_option('max_row', 30)
pd.set_option('display.float_format', lambda x: '%.5f' % x)
%matplotlib inline
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
%config InlineBackend.figure_format = 'svg'
2.2 变量和简单的数据类型
- 演示2-1 字符串的表示
# 这是一个字符串
"hello world"
# 将字符串赋值给一个变量x
x = "hello world!"
# 用print()函数输出字符串
print('hello world!')
print(x)
- 演示2-2 字符串的常用操作
# 字符串的连接
'hello' + 'world!'
# 字符串的复制
"python" * 3
# 获取字符串的长度
len("123456789")
len("h a")
# 字符串的查找
"中国" in "中国船舶"
"hello world".find("e")
"hello world".find("l")
# 字符串索引
a = "love"
a[0]
a[1:3]
# 字符串分隔
'a,b,c'.split(',')
'a|b|c'.split('|')
# 移除字符
' a '.strip() # 移除前后空格
- 演示2-3 数字、计算与比较
# 整数
12
# 浮点数
1.0
2.4
# 这里想把整数6赋值给a这个变量
a = 6
# python当计算器使用
24+36
2 ** 3
2 ** 0.5
# 比较
# 布尔值 True\False
1 == 1
'a' == 'b'
'a' == 'a'
'a' != 'b'
3 > 2
'a' == 'b' and 'a' == 'a'
'a' == 'b' or 'a' == 'b'
not 'a' == 'b'
2.3 列表与元组
- 演示2-4 列表与元组
#列表是用来存储一组有序数据元素的数据结构,元素之间用逗号分隔,列表中的数据元素应该包括在方括号中。
#新建一个空列表
null_list = []
int_list = [1, 2, 3]
str_list = ['a', 'b', 'c']
int_str_list = ['a', '1', 'b', 2, 'c', 3]
#列表的复制
int_str_list * 3
#列表的复制、合并、索引
int_list + str_list
int_list.extend(str_list) #将str_list中的变量加入int_list里
int_list[1] #列表的索引
int_list[1:3] #列表的切片,类似字符串的切片
#修改、添加和删除列表中的元素
int_list[0]
int_list[0] = 'hah1'
int_list.append('hah2') #将变量'hah2'插入再列表末尾
int_list.insert(2, 'hah3') #向位置2插入'hah3'这个变量
del int_list[1]
int_list.pop() #弹出最后一个元素,注意与del的区别
x = int_list.pop()
del int_list[0] #删除第1个元素
#列表的方法与函数
int_list = [1, 3, 2, 5, 4, 6]
int_list.sort() #这种是list的方法,注意和下面函数的区别
int_list.reverse()
sorted(int_list) #这是list的sorted函数,类似excel里的函数,将int_list作为操作对象。
sorted(int_list, reverse=True) #这里的reverse参数可以取True或False,默认False,类似
Excel里RANK函数的顺序还是倒序选项。
len(int_list) #查看列表长度,利用这个可以控制索引不要超出列表长度。
#操作列表
#对于int_list中每一个元素,都执行一遍打印操作。
for i in int_list: #每一个冒号下面的代码记得一定要缩进!
print(i)
#创建数值列表
num_list = list(range(10)) #对0到10的整数,不包括10,创建一个列表
num_list = list(range(0, 10, 2)) #从0开始,截止到10,不包括10的相差为2的等差数列。
#结合数值列表循环打印
str_list = ['a', 'b', 'c']
for i in range(len(str_list)):
str_list[i] = i ** 2
#元组
#元组与列表极其类似,也有长度、索引等
tup = (1, 2, 3)
len(tup) #元组的长度
2.4字典
- 演示2-5 字典
#新建一个空字典
new_dict = {}
new_dict['a001'] = 1000
new_dict['a002'] = 1300
new_dict = {'a001': 1000, 'a002': 1300, 'a003': 1500, 'a004': 2000}
del new_dict['a002']
#查看字典中key, value
new_dict.items()
new_dict.keys()
new_dict.values()
- 演示2-6 嵌套举例
new_dict1 = [{'a001': 1000}, {'a002': 1300}, {'a003': 1500}]
new_dict2 = {'a001': [1, 2], 'a002': [1300, 2000, 3000], 'a003': 1500}
new_dict3 = {'a001':{'x': 3, 'y':6}, 'a002':{'z': 5, 's': 10}}
- 思考
我们可以用列表、元组、字典来储存什么数据?
第3章 Pthon基础知识(二)
3.1 条件语句
- 演示3-1 条件测试
if语句:
if condition:
do something
elif condition:
do something
else:
do something
# 例1 判断一个数是否大于1000,大于1000则返回,这是一个很大的数,否则返回这个数有点小。
x = 10
if x > 100:
print("这是一个很大的数")
else:
print("这个数有点小")
# 例2 判断用户输入的数是否大于1000,大于1000则返回"这是一个很大的数"。如果大于100,小于1000,则返回,这个数
字不大不小。否则返回,这个数字很小。
x = input('Please enter a number\n>')
x = float(x)
if x > 1000:
print("这是一个很大的数")
elif x > 100:
print("这个数字不大不小")
else:
print("这个数字很小")
#判断条件里,elif可以有很多个,省略else表示进行条件判断,只有条件符合时才做某事,条件不符合时不进行操作。
3.2 循环语句
- 演示3-2 for循环
# 列表循环举例
# 例题3-1 将用户输入的10个数字组装成列表打印在屏幕上,并打印出这些数字的和以及平均数
num_list = [] #准备好一个空的list来装用户输入的数字
total = 0 #定义一个初始值为0的变量来存储所有元素的和
for i in range(10):
num = input("Please enter a number/n>") #此处的/n表示换行
num = float(num) # 给出一个变量存储元素之和
num_list.append(num) # 将本次输入的数字num放入num_list中
total = total + num
print("元素之和为{}".format(total)) #将结果打印,format()相当于为了不让变量被认为是字符串
print("元素的均值为{}".format(total/10))
#字典循环举例
new_dict = {'a001': 1000, 'a002': 1300, 'a003': 1500, 'a004': 2000}
for k, v in new_dict.items():
print(k, v)
- 演示3-3 while循环
# while循环语句形式
while condition:
do something
# 例3-2 使用while循环改进例3-1
num_list = [] #准备好一个空的list来装用户输入的数字
total = 0 #定义一个初始值为0的变量来存储所有元素的和
while True: # 可以理解为这是无限第执行下方缩进代码块的循环,因为条件总是True
num = input("Please enter a number/n>") #此处的/n表示换行
if num == 'done': #设置一个退出循环的条件
break # break的作用是退出循环,跳到下方非缩进的代码块继续接着运行。
num = float(num) # 给出一个变量存储元素之和
num_list.append(num) # 将本次输入的数字num放入num_list中
total = total + num
print("元素之和为{}".format(total)) #将结果打印,format()相当于为了不让变量被认为是字符串
print("元素的均值为{}".format(total/10))