python - python Numpy数组输出为零的问题
问题描述
我想做平滑移动平均线(SMMA),但有些输出为零,我期望一个非零数组。下面的代码我做错了什么?
import numpy as np
arr1 = np.array([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23])
smma = np.array([])
ma1 = np.array([])
ma2 = np.array([])
ma = []
ma1 = []
ma2 = []
def iMA(arr: np.array, length=10, pos=0):
s = 0.0
if len(arr) - pos < length:
return s
for i in range(pos, pos + length):
rindex = i + 1
s = s + arr[-rindex]
return s / length
def iSMMA(arr: np.array, length=10, pos=0):
if len(arr) - pos < length:
return 0
for i in range(pos, pos+1):
if pos>=length-1:
if i == length-1:
global ma
global arr_copy
arr_copy = arr[:length]
global smma
smma = iMA(arr_copy, length)
ma.append(smma)
if i >= length and length > 2:
smma = (smma * (length - 1) + arr[i]) / length
ma.append(smma)
return ma
pos=9
for i in range(pos,len(arr1)):
a = iSMMA(arr1, 10,pos)
ma1 = np.array(a)
pos=pos+1
print(ma1)
输出:
C:\Users\air\anaconda3\python.exe C:/Users/air/PycharmProjects/pythonProject4/main.py
[5.5]
[5.5 6.05]
[5.5 6.05 6.645]
[5.5 6.05 6.645 7.2805]
[5.5 6.05 6.645 7.2805 7.95245]
0
0
0
0
0
0
0
0
0
Process finished with exit code 0
解决方案
推荐阅读
- sed - 将日期编码到批处理文件脚本中
- javascript - 在 HTML 中停止视频自动启动
- php - 使用 html 标签使用聊天 API 发送 whatsapp 消息
- node.js - ExpressJs 在生产模式下发送堆栈
- ios - 全局变量不增加?- 即使在应用程序关闭后也想保存全局变量
- typescript - 用于添加对象属性的函数的 TypeScript JSDoc 注释
- python - 如何在 Gsheet 的第二行插入数据?
- java - 将 tictactoe 应用程序从控制台转换为 javafx
- react-native - 在 React-Navigation/Drawer 中排除某些屏幕
- twilio - twilio中转接电话时如何显示来电号码