python实用代码
所属分类 quant
浏览量 405
help(math.log)
dir(math)
切片
[start:end:step]
只有一个 : 时,step=1
没有 : 时, 获取指定的元素
list[0] 第一个元素
list[-1] 最后一个元素
list[0:-2]
list = ["a","b","c","d","e"]
# ['c', 'b', 'a']
print(list[2::-1])
# ['a', 'b']
print(list[:2])
# ['a', 'b', 'c', 'd']
# 左闭右开 ,不包含最后一个元素
list[0:-1]
# ['a', 'c', 'e']
print(list[::2])
# -1 逆序
print(list[::-1])
# 直接修改 list
list.sort()
list.sort(reverse=True)
# 8
print(2**3)
import math
# 8
print(math.pow(2,3))
# 查看 math.pow 用法
help(math.pow)
# 查看 math包下的方法
dir(math)
计算方差和标准差
import statistics
data = [1, 2, 3, 4, 5]
# 除以 len(data) - 1
print(statistics.variance(data))
print(statistics.stdev(data))
# 使用 numpy
# 默认 除以 len(data)
print(np.var(data))
print(np.std(data))
# 无偏 分母n-1, 有偏 分母n
print(np.var(data,ddof=1))
print(np.std(data,ddof=1))
计算协方差和相关系数
x = np.array([1, 2, 3, 4, 5])
y = np.array([5, 4, 3, 2, 1])
cov_xy = np.cov(x, y)
print(cov_xy)
[[ 2.5 -2.5]
[-2.5 2.5]]
print(cov_xy[0,1])
-2.5
协方差和相关系数都是用来衡量两个变量之间的关系
相关系数不会因为变量的量级不同而产生影响,因此相关系数比协方差更为常用。
corrcoef = np.corrcoef(x, y)[0, 1]
print("相关系数为:", corrcoef)
相关系数为: -0.9999999999999999
计算四分位
import pandas as pd
import numpy as np
arr = range(0,100)
result = np.percentile(arr, (25, 50, 75))
result = pd.DataFrame(arr).describe()
python计算四分位
计算中位数
import statistics as stat
import numpy
import pandas as pd
arr = [4,6,1,5,2,3,7,5]
print(np.median(arr))
print(stat.median(arr))
df = pd.DataFrame(arr)
print(df.median()[0])
arr.append(8)
print(np.median(arr))
print(stat.median(arr))
df = pd.DataFrame(arr)
print(df.median()[0])
# 8
2**3
import math
# 3.141592653589793
print(math.pi)
# 2.718281828459045
print(math.e)
# 5.0
print(math.sqrt(25))
# 1.0
print(math.sin(math.pi / 2))
# 0.5000000000000001
print(math.cos(math.pi / 3))
# 7.38905609893065
print(math.exp(2))
# 2.0
print(math.log(math.exp(2)))
使用 datetime模块处理日期和时间
import datetime
# 获取当前日期和时间
current_datetime = datetime.datetime.now()
print(f"Current datetime: {current_datetime}")
# 获取三天后的日期
three_days_later = current_datetime + datetime.timedelta(days=3)
print(f"Three days later: {three_days_later}")
使用列表解析和 endswith查找特定扩展名的文件
import os
# 获取当前目录下的所有文件和目录
items = os.listdir()
# 使用列表解析找出所有.txt文件
txt_files = [item for item in items if item.endswith('.txt')]
print(txt_files)
使用 else 子句与 try-except
try:
x = 1 / 1
except ZeroDivisionError:
print("You tried to divide by zero!")
else:
print(f"Result is {x}")
使用 re模块进行正则表达式匹配
import re
# 定义一个字符串
string = "The rain in Spain"
# 使用re.search查找匹配的字符串
match = re.search(r"Spain", string)
if match:
print("Match found!")
else:
print("Match not found.")
# 定义一个字符串
string = "Email me at john.doe@example.com"
# 使用正则表达式匹配电子邮件地址
match = re.search(r'[\w.-]+@[\w.-]+', string)
if match:
print(f"Found email: {match.group()}")
使用 argparse 解析命令行参数
import argparse
# 初始化解析器
parser = argparse.ArgumentParser(description="A simple argument parser")
# 添加参数
parser.add_argument("--name", type=str, help="Your name")
# 解析参数
args = parser.parse_args()
# 输出结果
print(f"Hello, {args.name}!") # 输出:Hello, None!
使用 filter 函数过滤列表
# 定义一个数字列表
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 使用filter函数过滤出偶数
evens = list(filter(lambda x: x % 2 == 0, numbers))
print(evens) # 输出:[2, 4, 6, 8, 10]
使用 namedtuple 创建简单的对象
namedtuple 提供了一种创建简单对象的方法,不需要定义一个完整的类。
from collections import namedtuple
# 使用namedtuple定义一个简单的对象
Person = namedtuple("Person", ["name", "age", "city"])
# 创建一个新的Person对象
john = Person(name="John", age=30, city="New York")
print(john.name, john.age, john.city) # 输出:John 30 New York
使用 math模块进行数学计算
import math
# 计算平方根
sqrt_value = math.sqrt(16)
print(f"Square root of 16: {sqrt_value}")
# 计算圆的面积
radius = 5
area = math.pi * radius**2
print(f"Area of circle with radius 5: {area:.2f}")
# 输出:Area of circle with radius 5: 78.54
使用 numpy计算数组的累计和
import numpy as np
array = np.array([1, 2, 3, 4, 5])
# 使用numpy计算数组的累计和
cumsum = np.cumsum(array)
print(cumsum) # 输出:[ 1 3 6 10 15]
使用 pandas 处理时间序列数据
import pandas as pd
# 创建一个时间序列数据框
date_rng = pd.date_range(start='2023-01-01', end='2023-01-10', freq='D')
df = pd.DataFrame(date_rng, columns=['date'])
df['data'] = np.random.randint(0, 100, size=(len(date_rng)))
# 设置日期为索引
df.set_index('date', inplace=True)
print(df)
使用 matplotlib 绘制饼状图
import matplotlib.pyplot as plt
labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]
# 使用matplotlib绘制饼状图
plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90)
plt.axis('equal') # Equal aspect ratio ensures that pie is drawn as a circle.
plt.show()
使用 numpy 的 linspace 生成均匀间隔的值
import numpy as np
# 使用numpy的linspace生成从0到10的10个均匀间隔的值
values = np.linspace(0, 10, 10)
print(values)
使用 pandas 计算数据的描述性统计
import pandas as pd
data = {
'A': [1, 2, 3, 4, 5],
'B': [5, 6, 7, 8, 9],
'C': [9, 8, 7, 6, 5]
}
df = pd.DataFrame(data)
stats = df.describe()
print(stats)
上一篇
下一篇
log4j2 配置获取环境变量和系统变量
2022量化金融分析师AQF全国统一考试考试大纲
《量化投资 以python为工具》知识点
2023中国量化科技白皮书数据解读
AIGC术语
numpy polyfit 多项式拟合