亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

債券息票貼現的循環

債券息票貼現的循環

Go
BIG陽 2022-08-25 14:09:49
關于如何編寫一個for循環給我所有優惠券的現值(即折扣值)的快速問題。我的代碼如下所示:我想要一個 for-loop 來執行該操作c[0]*np.exp(-r*1)c[1]*np.exp(-r*2)c[2]*np.exp(-r*3) ,依此類推(數乘以 -r 始終是索引 +1)。我想要所有值的總和,例如使用x +=for循環迭代c=[7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5]r=0.071PVx=0 for i in c:    print(i)    year = c.index(i)+1    print(year)    PV=c[i]*np.exp(-r*year)    PVx += PV     print(PVx)不知何故,我收到了我的PV變量的錯誤代碼“TypeError:列表索引必須是整數或切片,而不是浮點數”。從本質上講,我希望將列表中的每個值乘以np.exp(-r*索引位置+1),然后得到總和:S編輯:我的新代碼import numpy as npc=[7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5]r=0.071PVx=0 for i in c:    year = c.index(i)+1    print(year)    PV=i*np.exp(-r*year)    PVx += PV    print(PVx)繼續將年份打印為1(意味著c.index(i)產生0 + 1 = 1),而我希望它從1到7。我想我現在的問題。
查看完整描述

2 回答

?
瀟湘沐

TA貢獻1816條經驗 獲得超6個贊

我的新代碼[...]繼續將年份打印為1(意味著c.index(i)產生0 + 1 = 1),而我希望它從1到7。


list.index(i)返回出現的第一個索引,如果不在列表中,則返回 -1。ii


NumPy 解決方案:


import numpy as np


r = 0.071


arr_1 = np.full(shape=7, fill_value=7.5)

print(arr_1)


arr_2 = np.exp(-r * np.arange(1, arr_1.shape[0] + 1))

print(arr_2)


arr_3 = arr_1 * arr_2

print(arr_3)

print(arr_3.sum())

輸出:


[7.5 7.5 7.5 7.5 7.5 7.5 7.5]

[0.93146189 0.86762126 0.80815614 0.75276664 0.70117344 0.65311634

 0.60835298]

[6.98596419 6.50715942 6.06117103 5.64574984 5.25880082 4.89837257

 4.56264738]

39.919865247574606

循環解決方案:


import math

from pprint import pprint


r = 0.071


vals = [7.5 * math.exp(-r * i) for i in range(1, 8)]


pprint(vals)

pprint(sum(vals))

輸出:


[6.985964190956941,

 6.507159423644355,

 6.0611710291236625,

 5.645749835296472,

 5.258800824064293,

 4.898372565905067,

 4.562647378583822]

39.919865247574606

我不完全確定我是否理解你想做什么,所以如果我錯過了什么,請告訴我。


查看完整回答
反對 回復 2022-08-25
?
繁花不似錦

TA貢獻1851條經驗 獲得超4個贊

錯誤解釋了這個問題:“”浮點是一個帶有小數的數字,即不是整數。對于 exampe 7.5.那是你的問題。TypeError: list indices must be integers or slices, not float



查看完整回答
反對 回復 2022-08-25
  • 2 回答
  • 0 關注
  • 86 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號