gpt4 book ai didi

python - 如何在 Python 中执行矢量化操作?

转载 作者:行者123 更新时间:2023-11-28 20:57:29 25 4
gpt4 key购买 nike

我的简单代码有问题,该代码假设是一个抵押计算器,其中从 0.03 到 0.18 的所有利率都列在一个表中。这是我的代码和错误。

l = 350000 #Loan amount
n = 30 #number of years for the loan
r = [0.03,0.04,0.05,0.06,0.07,0.08,0.09,0.10,0.11,0.12,0.13,0.14,0.15,0.16,0.17,0.18] #interest rate in decimal

n = n * 12
a = l
int1 = 12
u = [x / int1 for x in r]

D = (((u+1)**n)-1) /(u*(u+1)**n)

z = (a / D)
print(z)

File "test.py", line 23, in <module>
D = (((u+1)**n)-1) /(u*(u+1)**n)
TypeError: can only concatenate list (not "int") to list

谢谢

最佳答案

问题是 u 是一个列表,不能用于您在计算 D 时正在进行的矢量化操作。您可以将列表转换为 NumPy 数组以使您的代码正常工作。

u = np.array([x / int1 for x in r])

或者,您可以使用 for 循环或列表理解为 u 的每个元素存储 D

D = [(((i+1)**n)-1) /(i*(i+1)**n) for i in u]

但这会在 z = (a/D) 期间再次报错,因为 D 仍然是一个列表。因此,转换为数组似乎是一种方便的方法。

另一个替代答案是直接使用列表理解来计算 z,而不涉及额外的变量 D

z = [a / ((((i+1)**n)-1) /(i*(i+1)**n)) for i in u]

关于python - 如何在 Python 中执行矢量化操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53012531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com