我有一个数据列表,看起来如下:
signal = [-1, -1, -1, 1, -1, 1, 1, -1, 1, -1, 1, 1]其中a-1属于卖出信号,1属于买入信号.我现在要将这个信号列表转换为如下所示:
signal = [-1, 0, 0, 1, -1, 1, 0, -1, 1, -1, 1, 0]这基本上意味着,如果信号的方向没有改变以前的信号(或者已经是0),它应该是0。
我找不到类似的答案,所以我们很感谢你的帮助。
发布于 2018-06-12 20:32:25
另一种口味,基于清单理解:
[j if i != j else 0 for i,j in zip([0] + signal, signal)]
#[-1, 0, 0, 1, -1, 1, 0, -1, 1, -1, 1, 0]发布于 2018-06-12 20:25:16
尝试:
_list = []
signal = [-1, -1, -1, 1, -1, 1, 1, -1, 1, -1, 1, 1]
_list.append(signal[0])
for i in range(1,len(signal)):
if signal[i] == signal[i-1]:
_list.append(0)
else:
_list.append(signal[i])
signal = _list
print(signal)输出:[-1, 0, 0, 1, -1, 1, 0, -1, 1, -1, 1, 0]
https://stackoverflow.com/questions/50825238
复制相似问题