我想知道是否可以解决这个问题。我有这个值(value)观:
yf = (0.23561643, 0.312328767, 0.3506849315, 0.3890410958, 0.4273972602, 0.84931506)
z = (4.10592285e-05, 0.0012005020, 0.00345332906, 0.006367483, 0.0089151571, 0.01109750, 0.01718827)
我想使用这个函数(折扣因子),但由于 z 和 yf 之间的长度不同,它不起作用。
def f(x):
res = 1/( 1 + x * yf)
return res
f(z)
output: ValueError: cannot evaluate a numeric op with unequal lengths
我的问题是是否存在解决这个问题的方法。近似输出值为:
res = (0.99923, 0.99892, 0.99837, 0.99802, 0.99763, 0.99175)
对此的任何帮助都是完美的,我要提前感谢所有花时间阅读或尝试提供帮助的人。
最佳答案
您想要将数组广播到较短的那个吗?你可以这样做
def f(x):
leng = min(len(x), len(yf))
x = x[:leng]
new_yf = yf[:leng] # Don't want to modify global variable.
res = 1/( 1 + x * new_yf)
return res
它应该可以工作。
关于python - 在python中将两个不同长度的数组相乘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52878481/