find_half_energy_time
描述
计算每一行在其后指定时间窗口内的价格变动能量,并找出首次达到最终能量一半时所需的时间。
函数签名
find_half_energy_time(times, prices, time_window) -> None
参数
times
(array_like)
时间戳数组(单位:秒)
prices
(array_like)
价格数组
time_window
(float, optional)
时间窗口大小(单位:秒),默认为5.0
返回值
numpy.ndarray 浮点数数组,表示每行达到最终能量一半所需的时间(秒)。 如果在时间窗口内未达到一半能量,或者最终能量为0,则返回time_window值。
Python调用示例: ```python import pandas as pd import numpy as np from rust_pyfunc import find_half_energy_time
创建示例DataFrame
df = pd.DataFrame({ 'exchtime': [1.0, 1.1, 1.2, 1.3, 1.4], 'price': [10.0, 10.2, 10.5, 10.3, 10.1] })
计算达到一半能量所需时间
df['half_energy_time'] = find_half_energy_time( df['exchtime'].values, df['price'].values, time_window=5.0 ) print(df)
exchtime price half_energy_time
0 1.0 10.0 2.1 # 在2.1秒时达到5秒能量的一半
1 1.1 10.2 1.9 # 在1.9秒时达到5秒能量的一半
2 1.2 10.5 1.8 # 在1.8秒时达到5秒能量的一半
3 1.3 10.3 1.7 # 在1.7秒时达到5秒能量的一半
4 1.4 10.1 5.0 # 未达到5秒能量的一半
```
示例
输入:
find_half_energy_time(
np.array([10.0, 8.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0]),
np.array([0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0])
)
输出:
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Python使用示例
import numpy as np
from rust_pyfunc import find_half_energy_time
# 使用示例
result = find_half_energy_time(np.array([10.0, 8.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0]), np.array([0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0]))
print(f"结果: {result}")