import numpy as np
'''查看方法的帮助文档'''
np.info(np.sum)
"""计算sin、log10、去重、相反数、非nan值元素的均值、排序"""
a = np.array([1,2,4.0,1.0])
b = np.array([3.2,2.4,5.0,10.1])
print(np.sin(a)) # 取sin
print(np.log10(b)) # 取对数
print(np.unique(a)) # 唯一数据
print(np.negative(a)) # 取相反数
print(np.nanmean(a)) # 非nan值计算均值
print(np.sort(a))
"""计算两个array的协方差和皮尔逊积矩相关系数"""
a = np.array([1,2,4.0,1.0])
b = np.array([3.2,2.4,5.0,10.1])
print(np.cov(a,b)) # 计算协方差
print(np.corrcoef(a,b)) # 计算皮尔逊积矩相关系数
"""计算多个array之间的皮尔逊相关系数"""
a = np.array([1,2,3,4,5,6,7,8,9,10])
b = np.array([2,4,1,5,1,3,6,2,7,0])
c = np.array([0,3,2,1,4,7,1,9,6,2])
x = np.vstack((a,b,c))
print(np.corrcoef(x))
"""判断nan值和无穷"""
print(np.isnan([0, np.nan]))
print(np.isinf([0, np.Inf, 1, -np.Inf]))
'''最大值和最小值的位置'''
print('最大值位置',np.argmax([1,2,3]))
print('最小值位置',np.argmin([1,2,3]))
'''切分array_split'''
x = np.array([10,20,30,40,50,60,70,80])
print(np.array_split(x,2)) # 等分
print(np.array_split(x,4)) # 非等分
print(np.array_split(x,[2,3,4,6])) # [1~2, 3, 4~5, 6~8]
'''字符串时间转化'''
print(np.datetime64('2019-01-01')) # 年-月-日
print(np.datetime64('2019-01-01T11:00:00')) # 年-月-日 时:分:秒
print(np.datetime64('2019-01-01 11:00:00.500')) # 年-月-日 时:分:秒.毫秒
'''两个时间之间的差值'''
time1 = np.datetime64('2019-01-01')
time2 = np.datetime64('2019-03-01')
print(int((time2 - time1)/np.timedelta64(1,'D'))) # 计算两个datetime64格式时间之间的天数
print(int((time2 - time1)/np.timedelta64(1,'h'))) # 计算两个datetime64格式时间之间的小时数
print(int((time2 - time1)/np.timedelta64(1,'m'))) # 计算两个datetime64格式时间之间的分钟数
print(int((time2 - time1)/np.timedelta64(1,'s'))) # 计算两个datetime64格式时间之间的秒数
'''计算累和和累积
(策略每日收益率序列 + 1)再累乘 = 策略净值曲线
策略累计收益率曲线 = 策略净值曲线 - 1
'''
策略日收益率 = np.array([0, -0.1, 0.1, -0.1, 0.1])
策略净值 = np.cumprod(1+ 策略日收益率)
策略累计收益率 = 策略净值 - 1
print('策略净值:',策略净值)
print('策略累计收益率:',策略累计收益率)
'''多项式拟合'''
x = np.arange(0, 3) # x值,此时表示弧度
y = x**2 + x + 1 #函数值,转化成度
z1 = np.polyfit(x, y, 2) # 用7次多项式拟合,可改变多项式阶数;
p1 = np.poly1d(z1) #得到多项式系数,按照阶数从高到低排列
print(p1) #显示多项式
'''多项式求解
计算多项式方程 1 * x**2 - 2 * x**1 -3 = 0 的解
'''
np.roots([1,-2,-3])
'''np.where(condition, x1,x2) 条件填充'''
a = np.array([0, -0.1, 0.1, -0.1, 0.1])
np.where(a>0, 1,-1)
其他方法
B = np.mat("1 -2 1;0 2 -8;-4 5 9") b = np.array([0,8,-9]) np.linalg.solve(B,b) 求解线性方程
np.save, np.load 写入、读取np格式文件