first_python:计算平均分

#计算某同学语文、数学、计算机的平均分
name = input('请输入你的名字:')
chi = eval(input('请输入你的语文成绩:'))
math = eval(input('请输入你的数学成绩:'))
com = eval(input('请输入你的计算机成绩:'))
aver =(chi + math + com)/3
print(name,'的:平均成绩为:',aver)
KAMA是一种自适应移动平均值,它的计算方法是将价格数据的波动性考虑在内,以尽可能减小噪声对移动平均线的影响。下面是一个Python实现KAMA的示例代码: ```python import pandas as pd import numpy as np def kama(data, n=10, pow1=2, pow2=30): '''Kaufman's Adaptive Moving Average (KAMA) data - pandas DataFrame n - number of periods for efficiency ratio pow1 - number of periods for fast EMA pow2 - number of periods for slow EMA''' abs_diff = abs(data - data.shift(1)) er = abs_diff / pd.stats.moments.rolling_sum(abs_diff, n) sc = ((er*(2.0/(pow1+1)-2.0/(pow2+1.0))+2/(pow2+1.0))**2.0).values kama = np.zeros(sc.size) N = len(kama) first_value = True for i in range(N): if np.isnan(sc[i]): kama[i] = np.nan else: if first_value: kama[i] = data[i] first_value = False else: kama[i] = kama[i-1] + sc[i] * (data[i] - kama[i-1]) return kama ``` 上述代码使用了Pandas和Numpy库,其中的er表示效率比率,sc为平滑常数,kama为自适应移动平均值。该函数使用递归计算,以加快计算速度。 你也可以使用Cython来加速计算。下面是一个Cython版本的kama计算代码: ```cython cimport numpy as np import numpy as np def kama(np.ndarray[np.float64_t, ndim=1] data, int n=10, int pow1=2, int pow2=30): cdef np.ndarray[np.float64_t, ndim=1] abs_diff, er, sc, kama cdef int N, i cdef bint first_value abs_diff = np.abs(data - np.roll(data, 1)) er = abs_diff / pd.stats.moments.rolling_sum(abs_diff, n) sc = ((er*(2.0/(pow1+1)-2.0/(pow2+1.0))+2/(pow2+1.0))**2.0).values kama = np.zeros(sc.size) N = len(kama) first_value = True for i in range(N): if np.isnan(sc[i]): kama[i] = np.nan else: if first_value: kama[i] = data[i] first_value = False else: kama[i] = kama[i-1] + sc[i] * (data[i] - kama[i-1]) return kama ``` 使用Cython可以使得计算速度更快,但需要使用Cython的命令来编译这段代码,以便生成优化的机器码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值