【发布时间】:2020-06-30 15:48:16
【问题描述】:
我有两个数组。
第一个数组称为 ret_arr,它包含不同投资组合的收益。 第二个数组称为 vol_arr,它包含相同投资组合的波动率。
如果我想在 vol_array 中找到一个 0.2±0.01 的元素,使其在 ret_arr 中的对应元素最大化,我该怎么做?
我提供 0.01 容差的原因是因为 vol_arr 中的数字不会正好是 0.2,我想在该波动率水平附近采样很多点。
我知道我可以执行 vol_arr.sort() 和 ret_arr.sort() 之类的操作,然后通过观察它们来确定在每个波动率水平下哪个具有最佳回报,但有没有办法自动执行此操作?
我的第一次尝试是运行这个:
import numpy as np
def find_nearest(array, value):
array = np.asarray(array)
idx = (np.abs(array - value)).argmin()
return array[idx]
array = ret_arr
print(array)
value = 0.08
print(find_nearest(array, value))
但这只是在ret_arr 中找到最接近我提供的值的元素。
我宁愿提供波动率水平,给它一些容差,并让代码循环遍历该容差内的所有值,并告诉我波动率水平在以最佳回报定义的容差内的指数。
【问题讨论】:
标签: python arrays numpy minimize maximize