gpt4 book ai didi

python - 确定一个值是否超过另一个值的函数

转载 作者:行者123 更新时间:2023-12-01 09:10:57 26 4
gpt4 key购买 nike

我正在处理数据框中的一些数据,我发现自己编写的代码包含很多这些数据:

def entry_signal(y):
conditions1 = [np.logical_and(y > 0, y.shift(1) < 0),np.logical_and(y < 0, y.shift(1) > 0)]
values1 = ['LongEntry','ShortEntry']
return np.select(conditions1, values1, '')

本质上,如果该值超过 0 并且前一个值小于 0,那么它应该为 true。

我尝试创建一个函数来执行此操作,但我不断收到错误:

def cross_above(x,y):
if np.logical_and(x>y, x.shift(1)<y):
return True
else:
return False

然后我尝试在这里使用它:

def entry_signal(y):
conditions1 = [cross_above((y,0), y.shift(1) < 0),np.logical_and(y < 0, y.shift(1) > 0)]
values1 = ['LongEntry','ShortEntry']
return np.select(conditions1, values1, '')

但我不断发现一个系列的值(value)的真相是模棱两可的。我做错了什么?

最佳答案

这能完成任务吗?

import numpy as np

def cross_above(x, threshold):
x = np.asarray(x)
return np.any( np.logical_and( x[1:]>threshold, x[:-1]<threshold) )

cross_above([1, 2, 3], 1.8) # True
cross_above([3, 2, 1], 1.2) # False
cross_above([3, 2, 1], 0.2) # False

关于python - 确定一个值是否超过另一个值的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51656874/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com