python量化投资基础知识_量化投资学习笔记07——python知识补漏

看《量化投资:以python为工具》这本书,第一部分是python的基础知识。这一部分略读了,只看我还不知道或不熟的。

定义复数

x = complex(2, 5) #2+5j

也可以直接定义

y = 3-6j

用id()可以得到变量的内存地址

z = 3-6j

print(id(y), id(z))

y和z的内存地址是一样的。

531269809744 531269809744

python可以为不可变对象分配固定的内存,减少内存占用。

当两个变量指向同一对象时,is比较结果为True。当两个变量指向的对象值相等时,==为True。

如果函数参数为可变对象,在函数内部改变此对象会影响函数外部。

def testChange(x, y):

x[0] = "A"

y = 7

x = ["a", "b", "c", "d"]

y = 6

testChange(x, y)

print(x, y)

使用个数不定的参数,可以提前打包,或者使用不定参数传递,方法是在参数前加*

def manyCan(*arg):

sum = 0

for i in arg:

sum = sum+i

return sum

print(manyCan(1,2,3))

匿名函数,无需使用def来定义的函数,使用lambda来定义。

# 匿名函数

greeting = lambda : print("hello")

greeting()

若字符串中包含单引号或双引号,要将整个字符串用三个引号包含。

文本分析时,应将字符串完全转换成小写再分析。

字典对象的keys()函数查看键值,values()函数返回值。

# 字典测试

dictest = {"High":5, "Low":1, "Close":3}

print(dictest)

for key in dictest.keys():

print(key)

print(dictest[key])

用del语句可以删除特定键及其对应值,用clear()方法则删除整个字典,返回空字典。

Python集合有set和frozenset两种,均不含重复元素,前者可变,后者不可变。

set用add()和remove()来增删成员。

使用arange创建array是不包含终点值的,要包含终点值,使用linspace。

不知道初始值时,用zeros(), ones()或empty()创建。

通过切片索引提取的array与原array共享内存,通过整型索引提取则不与原数组共享内存。

每个series对象实际上都由两个数组组成:index和values。

时间序列的index属性的取值为时间戳。用Timestamp()来将datetime转换为时间戳。由于其不接受列表等可迭代对象,用to_datetime()函数。

滞后操作:将t期数据换成t-a期数据。

超前操作:将t期数据换成t+a期数据。

标签索引与切片,用loc[行标签,列标签]

位置索引与切片,用iloc[行标签,列标签]

混合上述两者,用ix。(但python提示ix将被废弃)

我发文章的四个地方,欢迎大家在朋友圈等地方分享,欢迎点“在看”。

我的微信个人订阅号:赵瑜敏的口腔医学学习园地


版权声明:本文为weixin_39574943原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。