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}")