如何解决需要帮助来识别python数据结构
全部,
我正在尝试实现在网上找到的用于股票分析的示例功能。
(归功于Sofien Kaabar)
def normalizer(Data,lookback,onwhat,where):
for i in range(len(Data)):
try:
Data[i,where] = (Data[i,onwhat] - min(Data[i - lookback + 1:i + 1,onwhat])) /
(max(Data[i - lookback + 1:i + 1,onwhat]) - min(Data[i - lookback + 1:i + 1,onwhat]))
except ValueError:
pass
Data[:,where] = Data[:,where] * 100
return Data
我遇到的问题是如何引用Data变量。
对于给定的股票,数据是按时间序列的OHLC(开盘,最高价,最低价,收盘价)一段时间。
我认为这应该是列表的列表,但是用“ data [x,y]”引用列表的列表
是无效的。 (我认为)。我对列表列表的唯一经验是需要使用符号
之类的data [x] [y]。
这使我认为数据var不是列表列表。
有人能识别二维数组的这种表示法吗?
我正在使用python 3.7。
解决方法
这是旧的,但这是一个有效的例子。原始评论者在 numpy 数组中是正确的。我使用pandas来获取数组,它是一个包含OHLC数据的列表列表,但也需要一个空列来放入结果。
来源于原作者的文章:https://towardsdatascience.com/a-simple-indicator-to-be-added-to-your-trading-system-ac65e70bbdd
熊猫数据:
open high low close newcolumn
Date
2002-05-23 16.19 17.40 16.04 16.75
2002-05-24 17.00 17.15 16.76 16.94
2002-05-28 16.99 17.25 16.20 16.20
2002-05-29 16.30 16.30 15.20 15.45
2002-05-30 15.51 15.51 15.00 15.00
... ... ... ... ... ...
2002-10-08 5.75 5.99 5.47 5.67
2002-10-09 5.74 5.75 4.86 5.22
2002-10-10 5.29 7.35 4.85 7.09
2002-10-11 7.12 7.40 6.25 6.59
2002-10-14 6.50 7.49 6.49 7.48
Numpy 数组(不是完整数组 - 列表列表):
array([[16.19,17.4,16.04,16.75,''],[17.0,17.15,16.76,16.94,[16.99,17.25,16.2,[16.3,16.3,15.2,15.45,[15.51,15.51,15.0,[15.1,15.1,15.07,[15.12,16.09,15.8,[15.9,15.96,15.55,15.65,[15.55,16.23,15.5,16.06,
函数参数是索引位置 3 - 关闭列 4 - 写入新列 50 - 回顾
normalizer(df.values,50,3,4)
到达第 50 个位置后,您将看到新列计算开始
[13.3,13.44,12.29,12.48,[12.41,12.43,9.89,10.89,0.0],[10.9,11.38,10.65,10.85,[11.14,11.25,10.4,[10.65,11.11,6.371191135734058],[11.15,10.51,11.15,6.925207756232686],[11.18,11.5,10.9,11.02,5.124653739612177],[11.24,11.3,10.55,10.6,[10.75,11.27,10.56,10.82,3.0261348005502144],
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。