python - 在python中将两个不同长度的数组相乘

标签 python arrays numpy vector multiplication

我想知道是否可以解决这个问题。我有这个值(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/

相关文章:

c++ - Python 列表等同于 C++?

python - 获取子列表的第一个元素作为python中的字典键

java - 反转二维数组的行

python - 延长线与另一条线平滑连接

python - 根据行值将 csv 拆分为较小的文件

java - 字符串数组搜索输入

javascript - Jquery 到 PHP 数组传输

python - 持有期交易策略盈亏——解决rolling_apply瓶颈

python - 如何在 Matlab 中读取 .npy 文件

python - 如何在 Python 中暂停多处理进程?