我试图创建一种我认为对冲基金经济学的简单可视化方法,但是我正在努力解决这些问题。
我有4个数组,分别代表回报,管理费,资本和perf_fee:
pct_fee = np.linspace(0.5,1.5,num = 3).reshape(3,)
capital = np.linspace(50, 150.0, num = len(pct_fee))
perf_fee = np.linspace(10.0, 20.0, num = len(pct_fee))
returns = np.linspace(5.0, 15.0, num = len(pct_fee))
然后我将数组相乘:
fee_income = np.multiply.outer((pct_fee/100), capital).transpose() #3x3 matrix
perf = np.multiply.outer((returns/100), capital).transpose() #3X3 matrix
perf_fees = np.multiply.outer((perf_fee/100), perf).transpose() #3X3X3 matrix
这给我留下fee_income
,这是管理费和资本的矩阵,而perf_fees
是收益,资本和绩效费的矩阵。
结合这两个数组的最佳方法是什么,以使我有一个total_fees
矩阵,该矩阵由不同的资本,不同的执行费,不同的收益和不同的管理费组成?
我尝试向fee_income
添加一个尺寸并使用np.dstack
,但是我不断收到错误ValueError: all the input array dimensions except for the concatenation axis must match exactly
。
坦率地说,我不确定这是否是解决问题的最佳方法;我相信我期待一个4D阵列。
谢谢。
答案 0 :(得分:1)
这是您要寻找的东西吗
import numpy as np
pct_fee = np.linspace(0.5, 1.5, num=3)
capital = np.linspace(50, 150.0, num=len(pct_fee))
perf_fee = np.linspace(10.0, 20.0, num=len(pct_fee))
returns = np.linspace(5.0, 15.0, num=len(pct_fee))
pct_fee_grid, capital_grid, perf_fee_grid, returns_grid = np.meshgrid(pct_fee, capital, perf_fee, returns)
total_fees_grid = capital_grid*returns_grid*perf_fee_grid + capital_grid*pct_fee_grid
print(total_fees_grid.shape) # (3, 3, 3, 3)