numpy中与金融有关的函数
fv函数
计算未来的价值
def fv(rate, nper, pmt, pv, when='end'):
...
参数:
rate:存款/贷款每期的利率
nper:存款/贷款期数
pmt:存款/贷款每期支付的金额
pv:当前的存款/贷款金额
比如,古明地觉去博丽灵梦神社去存款,假设年利率是3%,存款为1000,然后每个季度都会存10元,那么五年后能拿到多少钱呢?
"""
年利率是百分之3,那么每个季度显然就是0.03 / 4
每个季度存10元,存五年,那么期数显然是5 * 4期
因此:
rate = 0.0. / 4
nper = 5 * 4
pmt = -10
pv = -1000
至于pmt和pv为什么是负的,可以想象一下存款,相当于是给别人钱,所以是负的,取出来的时候,别人给你,会是正的
"""
result = np.fv(0.03 / 4, 5 * 4, -10, -1000)
print(result) # 1376.0963320407982
# 可以看到5年后能拿这么多
# 如果我们把年利率改大一点的话,就改成1吧
import numpy as np
result = np.fv(1 / 4, 5 * 4, -10, -1000)
print(result) # 90165.62075079395
# 可以看到增长是很恐怖的
pv函数
用于根据未来计算现在的价值
def pv(rate, nper, pmt, fv=0, when='end'):
...
rate:存款/贷款每期的利率
nper:存款/贷款期数
pmt:存款/贷款每期支付的金额
fv:未来的存款/贷款金额
比如,古明地觉去博丽灵梦神社去存款,假设年利率是3%,然后每个季度都会存10元,如果五年后拿到1376.0963320407982,那么她现在要存多少钱呢?
import numpy as np
result = np.pv(0.03 / 4, 5 * 4, -10, 1376.0963320407982)
# fv相当于是你拿到的钱,所以是正的
print(result) # -1000.0
# 说明如果想在五年后拿到1376.0963320407982,现在要交出1000元
因此pv函数和fv正好是相反的。fv函数要传入pv计算fv,pv函数要传入fv计算pv
npv函数
npv(net present value)定义为按照折现率计算的净现金流之和。净现值是指投资方案所产生的现金净流量(流入-流出)以资金成本为贴现率,折现之后与原始投资额现值的差额
def npv(rate, values):
...
rate:存款/贷款每期的利率
values:现金
古明地觉投资100, 收益39,59,55,20,折现率为28.1%,则净现值为:
import numpy as np
result = np.npv(0.281, [-100, 39, 59, 55, 20])
print(result) # -0.00847859163845488
pmt函数
根据本金和利率计算出每期需要支付的金额
def pmt(rate, nper, pv, fv=0, when='end'):
...
rate:存款/贷款每期的利率
nper:存款/贷款期数
pv:存款/贷款金额
古明地觉要买房,房贷20万,准备15年还清,年利率为7.5%,则每个月需要换多少钱
import numpy as np
"""
rate:0.075 / 12
nper:15 * 12
pv:这里是贷了200000,所以钱是到自己兜里了,所以是正的
"""
result = np.pmt(0.075 / 12, 15 * 12, 200000)
print(result) # -1854.0247200054619
# 说明每个月要支出,也就是给银行1854.0247200054619元
nper函数
计算出需要付款多少期
def nper(rate, pmt, pv, fv=0, when='end'):
...
rate:存款/贷款每期的利率
pmt:存款/贷款每期的金额
pv:存款/贷款金额
古明地觉房贷20万,年利率为7.5%,每个月还2000,则需要换多少期
import numpy as np
"""
rate:0.075 / 12
pmt:每个月支出两千,所以是负的,-200
pv:这里是贷了200000,所以钱是到自己兜里了,所以是正的
"""
result = np.nper(0.075 / 12, -2000, 200000)
print(result) # 157.42258584992115
# 说明要还157.42258584992115期
rate函数
计算利率
def rate(nper, pmt, pv, fv, when='end', guess=None, tol=None, maxiter=100):
...
nper:期数
pmt:每期的存款/贷款金额
pv:present value
fv:future value
古明地盆存了1000元,然后每个季度存款10元,存了5年,五年后拿到了1376.0963320407982,那么年利率是多少呢?
import numpy as np
result = np.rate(5 * 4, -10, -1000, 1376.0963320407982)
print(result * 4) # 0.030000000000003947
# 说明年利率是0.030000000000003947
irr函数
计算内部收益率
一个人投资100,然后按照固定的时间间隔进行取款,39,59,55,20
由于是阶段性区块,收益率不是做简单的平均。而是用以下的公式计算
-100 + 39/(1+r) + 59/(1+r)^2 + 55/(1+r)^3 + 20/(1+r)^4 = 0
import numpy as np
result = np.irr([-100, 39, 59, 55, 20])
print(result) # 0.2809484211599611
numpy中与金融有关的函数的更多相关文章
- numpy中与高等数学有关的函数
1.方阵的迹 方阵的迹就是方阵的主对角线元素之和 # -*- coding:utf-8 -*- # @Author: WanMingZhu # @Date: 2019/8/12 9:37 import ...
- numpy中的argpartition
numpy.argpartition(a, kth, axis=-1, kind='introselect', order=None) 在快排算法中,有一个典型的操作:partition.这个操作指: ...
- python -- numpy 基本数据类型,算术运算,组合,分割 函数
0 NumPy数组 NumPy数组:NumPy数组是一个多维数组对象,称为ndarray.其由两部分组成: 实际的数据 描述这些数据的元数据 NumPy数组属性: ndim(纬数,x,y 2),sha ...
- numpy中linspace用法 (等差数列创建函数)
linspace 函数 是创建等差数列的函数, 最好是在 Matlab 语言中见到这个函数的,近期在学习Python 中的 Numpy, 发现也有这个函数,以下给出自己在学习过程中的一些总结. ( ...
- Numpy中Meshgrid函数介绍及2种应用场景
近期在好几个地方都看到meshgrid的使用,虽然之前也注意到meshgrid的用法.但总觉得印象不深刻,不是太了解meshgrid的应用场景.所以,本文将进一步介绍Numpy中meshgrid的用法 ...
- numpy中的arg系列函数
numpy中的arg系列函数 觉得有用的话,欢迎一起讨论相互学习~Follow Me 不定期更新,现学现卖 numpy中arg系列函数被经常使用,通常先进行排序然后返回原数组特定的索引. argmax ...
- 内置函数和numpy中的min(),max()函数
内置min()函数 numpy中的min()函数:
- Numpy中扁平化函数ravel()和flatten()的区别
在Numpy中经常使用到的操作由扁平化操作,Numpy提供了两个函数进行此操作,他们的功能相同,但在内存上有很大的不同. 先来看这两个函数的使用: from numpy import * a = ar ...
- numpy中的快速的元素级数组函数
numpy中的快速的元素级数组函数 一元(unary)ufunc 对于数组中的每一个元素,都将元素代入函数,将得到的结果放回到原来的位置 >>> import numpy as np ...
随机推荐
- MySQL 按照数据库表字段动态排序 查询列表信息
MySQL 按照数据库表字段动态排序 查询列表信息 背景描述 项目中数据列表分页展示的时候,前端使用的Table组件,每列自带对当前页的数据进行升序或者降序的排序. 但是客户期望:随机点击某一列的时候 ...
- MongoDB数据库数据清理
清理MongoDB集群数据: 1.登录MongoDB集群(mongos): # mongo -u username -p password --authenticationDatabase admin ...
- Mysql:常用操作(导入数据,用户授权,远程连接授权,设置通信缓冲区的最大长度)
1.导入数据命令: mysql --host=localhost --port=3306 --user=root --password=hnsjt_lwsj@2018 szyszx_20180515- ...
- SQL常见面试题(学生表_课程表_成绩表_教师表)
表架构 Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师 ...
- MFC之MessageBox、AfxMessageBox用法
在软件中我们经常会弹出个小窗口,给一点点提示.这就会用到消息对话框. 在Win32 API程序中只有MessageBox这一种用法. 而在MFC中就有三各方法: 1.调用API中的MessageBox ...
- 【转贴】龙芯内核发展策略 已经支持k8s
龙芯内核发展策略 时间:2019-06-27 15:48 来源:未知 作者:龙芯中科 点击:1002次 http://www.loongson.cn/m/view.php?aid=1118 ...
- Docker 运行的 应用程序无法连接Oracle数据库的解决办法
1. 最近公司使用docker化部署运行 app 发现一个部门的 多数据源取数的功能连接不上 oracle数据库 报错提示为: 2. 公司平台部同事给出两个解决方案: https://blog.cs ...
- 接口自动化框架 - httprunner
自己曾经写过一个接口自动化的框架,并做了一版本的优化,一直觉得做的还不错,且没依赖现有的框架. 最近因为一些工作的原因,开始又思考之前写的框架的一些缺点及如何优化,所以找到比较有名的httprunne ...
- 2016年蓝桥杯省赛C++A组 消除尾一
消除尾一: 下面的代码把一个整数的二进制表示的最右边的连续的1全部变成0如果最后一位是0,则原数字保持不变. 如果采用代码中的测试数据,应该输出: 00000000000000000000000001 ...
- 搞懂MySQL GTID原理
从MySQL 5.6.5 开始新增了一种基于 GTID 的复制方式.通过 GTID 保证了每个在主库上提交的事务在集群中有一个唯一的ID.这种方式强化了数据库的主备一致性,故障恢复以及容错能力. GT ...