python npv 计算公式_Python numpy 中常用的数据运算

Numpy

精通面向数组编程和思维方式是成为Python科学计算大牛的一大关键步骤。——《利用Python进行数据分析》

Numpy(Numerical Python)是Python科学计算的基础包。具有以下功能:

快速高效的多维数组对象ndarray

ndarray表示的是N维数组对象。

ndarray是一个通用的同构数据多维容器,也就是说,其中的元素必须都是相同类型的。

每个数组里面都有一个shape和一个dtype

shape表示各个维度大小的元组

dtype表示数组数据类型

除非是显示的设置dtype,否则np.array会尝试推断出数组的数据类型

用于对数组执行元素级别计算以及直接对数组执行数学运算的函数

用于读写硬盘上基于数组的数据集的工具

线性代数运算、傅里叶变换,以及随机数生成的功能

用于将C、C++、Fortran代码集成到Python的工具

作为在算法之间传递数据的容器

Numpy数组在存储和处理数据要比内置的Python数据结构高效得多。此外,由低级语言(比如C和Fortran)编写的库可以直接操作Numpy数组中的数据,无需进行任何数据复制工作。

查看Numpy的版本

python -c "import numpy; print numpy.version.version"

1

方法

数组创建函数列表:

函数名

说明

zeros

创建指定长度或形状全为0的数组。

ones

创建指定长度或者形状全为1的数组。

empty

创建一个没有任何具体值的数组。

arange

是基于Python原版range函数改进的数组版本。

array

将输入的数据(可以是列表、元组、数组、其他的序列数组)转换为Numpy的ndarray。要是不指定dtype,那么就由该方法推断出dtype。默认直接复制数据。

asarray

将输入的数据转换为Numpy的ndarray。如果输入本身是ndarray就不进行复制操作了。

eye

创建一个N×N的单位矩阵,主对角线为1,其余为0。

identity

创建一个N×N的单位矩阵,主对角线为1,其余为0。

一元函数

函数名称

说明

abs

计算整数、浮点数或者是复数的绝对值。

fabs

计算整数、浮点数的绝对值(比abs快)。

sqrt

计算各个元素的平方根,相当于arr**0.5。

square

计算各个元素的平方,相当于arr**2。

exp

计算各个元素的指数e*。

log

自然对数。

log10

底数为10的对数。

log2

底数为2的对数。

log1p

底数为(1+x)的对数。

sign

计算各个元素的正负号:1(正数)、-1(负数)、0(零)。

ceil

计算各元素的ceiling值,即大于等于该值的最小正数。

floor

计算个元素的floor值,即小于等于该值的最大正数。

rint

将个元素四舍五入到最接近的整数,保留dtype。

modf

将数组的小数和整数部分以两个独立数组的形式返回。

isnan

返回一个表示“哪些值是NaN(这不是一个数字)”的布尔值类型。

isfinite

返回一个表示“哪些元素是有穷的(非inf,非NaN)”的布尔值数组。

isinf

返回一个表示“哪些元素是无穷的”的布尔值数组。

cos、sin、tan

三角函数。

cosh、sinh、tanh

双曲型三角函数。

arccos、arcsin、arctan

反三角函数。

arccosh、arcsinh、arctanh

双曲型反三角函数。

logical_not

计算各个元素not x的真值,相当于-arr。

说明:

NaN表示not a number,即非数字。

二元函数

函数名称

说明

add

将数组中对应的元素相加。

subtract

从第一个数组中减去第二个数组中元素。

multiply

数组元素相乘。

divide

除法。

floor_divide

向下取整除法。

power

对第一个数组中的元素A,根据第二个数组中的相应元素B,计算A^B的值。

maxmum

取最大值。

fmax

除NaN外的最大值。

minimum

取最小值。

fmin

除NaN外的最小值。

mod

取余数。

copysign

将第二个数组中的值的符号复制给第一个数组中的值。

greater

大于。

greater_equal

大于等于。

less

小于。

less_equal

小于等于。

equal

等于。

not_equal

不等于。

logical_and

逻辑与(&)。

logical_or

逻辑或(|)。

logical_xor

逻辑异或(^)。

基本数组统计方法

名称

说明

sum

对数组中全部或者是某个轴向的所有元素进行求和。零长度的数组的sum值为0。

mean

算术平均值。零长度的数组的mean值为NaN。

std

标准差。自由度可调整(默认为n)。

var

方差。自由度可调整(默认为n)。

min

返回数组中的最小元素。

max

返回数组中的最大元素。

argmin

返回数组中最小元素的索引。

argmax

返回数组中最大元素的索引。

median

返回数组的中位值。注意,该方法不会对数组进行排序。数组个数为奇数个返回最中间一个数字,偶数个返回最中间两位的均值。

ravel

将多维数组展平多一维数组。

cov

协方差。

布尔型数组方法

名称

说明

any

数组中是否存在一个或者多个True。如果存在就返回True,反之,返回False。

all

数组中是否全部为True。如果所有数组中所有元素都是True就返回True,反之,返回False。

数组集合运算

名称

说明

unique(x)

有序返回x中所有的唯一元素。

intersect1d(x, y)

有序返回x和y中的公共元素。

union1d(x, y)

有序返回x和y的并集。

in1d(x, y)

返回一个表示“x的元素是否包含于y”的布尔型数组。存在用True表示,不存在用False表示。

setdiff1d(x, y)

返回存在于x但是不存在于y的集合差。

setxor1d(x, y)

返回存在于一个数组中但是不同时存在于两个数组中的元素的对称差集合。

数组操作

名称

说明

searchsorted

searchsorted函数为指定的插入值返回一个在有序数组中的索引位置,从这个位置插入可以保持数组的有序性。

extract

从数组中抽取元素。

cumsum

所有元素的累计和。

cumprod

所有元素的累计积。

矩阵

名称

说明

mat

创建一个矩阵。注意:mat函数创建矩阵时,若输入已为matrix或ndarray对象,则不会为它们创建副本。因此,调用mat函数和调用matrix(data, copy=False)等价。

T

转置。mat.T

I

逆矩阵。mat.I

bmat

分块矩阵,可以用小的矩阵来创建大的矩阵。矩阵A,矩阵B,矩阵C,C=bmat("A B;B A")

线性代数

线性代数是数学的一个重要分支。numpy.linalg模块包含线性代数的函数。使用这个模块,我们可以计算逆矩阵、求特征值、解线性方程组以及求解行列式等。

名称

说明

dot

矩阵乘法。用法:x.dot(y)或者是np.dot(x, y)

diag

以一维数组的形式返回方阵中的对角线(或者非对角线)元素,或将一维数组转换为方针(非对角线元素为0)。

trace

计算对角线元素的和。

det

计算矩阵行列式。

eig

计算矩阵的本征值和本征向量。

inv

计算矩阵的逆,即求逆矩阵。

pinv

计算矩阵的Moore-Penrose伪逆。

qr

计算QR分解。

svd

计算奇异值分解(SVD)。

solve

解线性方程组Ax=b,其中A是一个方阵。

lstsq

计算Ax=b的最小二乘积。

随机数

这些是numpy.random的函数:

名称

说明

seed

确定随机数生成器的种子。

permutation

返回一个序列的随机排列或返回一个随机排列的范围。

shuffle

对一个序列就地随机排序。

rand

产生均匀分布的样本值。

randint

从给定的上下限范围内随机选取整数。

randn

产生正态分布(平均值为0,标准差为1)的样本值,类似于MATLAB接口。

binomial

产生二项分布的样本值。

normal

产生正态(高斯)分布的样本值。

beta

产生Beta分布的样本值。

chisquare

产生卡方分布的样本值。

gamma

产生Gamma分布的样本值。

uniform

产生[01)中均匀分布的样本值。

专用函数

名称

说明

sort

函数返回排序后的数组。

lexsort

函数根据键值的字典序进行排序。

argsort

函数返回输入数组排序后的下标。

ndarray

名称

说明

sort

函数可对数组进行原地排序。

msort

函数沿着第一个轴排序。

sort_complex

函数对复数按照先实部后虚部的顺序进行排序。

金融函数

名称

说明

fv

函数计算所谓的终值(future value),即基于一些假设给出的某个金融资产在未来某一时间点的价值。

pv

函数计算现值(present value),即金融资产当前的价值。

npv

函数返回的是净现值(net present value),即按折现率计算的净现金流之和。

pmt

函数根据本金和利率计算每期需支付的金额。

irr

函数计算内部收益率(internal rate of return)。 内部收益率是是净现值为0时的有效利率,不考虑通胀因素。

mirr

函数计算修正后内部收益率(modified internal rate of return),是内部收益率的改进版本。

nper

函数计算定期付款的期数。

API文档

Numpy1.13.dev0文档

Pandas

Pandas(Python Data Analysis Library)是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的(让以Numpy为中心的应用变得更加简单)。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。

数据结构

说明

Series

一维数组,与Numpy中的一维array类似。二者与Python基本的数据结构List也很相近,其区别是:List中的元素可以是不同的数据类型,而Array和Series中则只允许存储相同的数据类型,这样可以更有效的使用内存,提高运算效率。如果传入的数据找不到对应的列,就将结果置为NaN。

Time- Series

以时间为索引的Series。

DataFrame

二维的表格型数据结构。很多功能与R中的data.frame类似。可以将DataFrame理解为Series的容器。以下的内容主要以DataFrame为主。 如果传入的列在数据中找不到,就会产生NA值。如果赋值是一个Series,就会精确匹配DataFrame中的索引,并且所有的空位都会被填充NaN。

Panel

三维的数组,可以理解为DataFrame的容器。

Pandas兼具Numpy高性能的数组计算功能以及电子表格和关系型数据库(如SQL)灵活的数据处理功能。它提供了复杂精细的索引功能,以便更为便捷地完成重塑、切片和切块、聚合以及选取数据子集等操作。

Series

Series的字符串的表现形式为:索引在左边,值在右边。

Series的最重要的一个功能就是它在算术运算中会自动对齐不同索引的数据。

Series的索引切片和原Python的切片是不一样的,这里的test['a':'c']中ac都是包含的,而原Python中的切片中c是不包含的。

DataFrame

DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值等等)。

DataFrame可以既有行索引又有列索引,他可以被看做是由Series组成的字典(共用同一个索引)。跟其他类似的数据结构相比(如R的data.frame),DataFrame中面向行和面向列的操作基本上是平衡的。其实,DataFrame中的数据是以一个或者多个二维块存放的(而不是列表、字典或者是别的一维数据结构)。

注意:虽然DataFrame是以二维结构保存数据的,但你仍然可以轻松地将其表示为更高维度的数据(层次化索引的表格型结构,这是Pandas中许多高级数据处理功能的关键要素)。

我们可以通过类似字典标记的方式或者属性的方式,获取DataFrame中的一个Series,比如frame['name']这种形式。

注意:返回的Series拥有原DataFrame相同的索引,且其name属性也已经被相应的设置好了。行也可以通过位置或者名称的方式进行获取,比如用索引字段ix。

注意:通过索引方式返回的列只是相应数据的视图而已,并不是副本。因此,对返回的Series所做的任何修改全部都会反映到源DataFrame上。通过Series的copy方法即可显式地复制列。

Index的方法和属性

名称

说明

append

连接另一个Index对象,产生一个新的Index。

diff

计算差集,并得到一个Index。

intersection

计算交集。

union

计算并集。

delete

删除索引i处的元素,并得到新的Index。

drop

删除传入的值,并得到新的Index。

insert

将元素插入到索引i处,并得到新的Index。

is_monotonic

当各个元素大于等于前一个元素的时候,返回True。

is_unique

当Index唯一的时候,返回True。

unique

返回在数组中Index唯一的元素构成的数组。

reindex

reindex函数的参数列表

参数

说明

index

用作索引的新序列。既可以是Index实例,也可以是其他序列型的Python数据结构。Index会被完全使用,就像没有任何复制一样。

method

插值(填充)方式,具体参数见下面表格。

fill_value

在重新索引的过程中,需要引入缺失值是使用的替代值。

limit

前向或者后向填充时的最大填充量。

level

在MultiIndex的指定级别上匹配简单索引,否则选取其子集。

copy

无论如何复制,默认为True;如果是False,则新旧相等的话就不复制了。

reindex函数method参数

参数

说明

ffill

前向填充值。

pad

前向搬运值。

bfill

后向填充值。

backfill

后向搬运值。

算术方法

方法

说明

add

加法

sub

减法

div

除法

mul

乘法

约简方法的常用选项

选项

说明

axis

约简的轴。DataFrame的行用0表示,列用1表示。

skipna

排除缺失值,默认值为True。

level

如果轴是层次化索引的(即MultiIndex),则根据level分组约简。

描述统计方法

方法

说明

count

非NA值的数量。

describe

针对Series或者各个DataFrame列计算汇总统计。

min

最小值。

max

最大值。

argmin

计算能够获取到最小值的索引位置。(整数)

argmax

计算能够获取到最大值的索引位置。(整数)

idxmin

计算能够获取到最小值的索引值。

idxmax

计算能够获取到最大值的索引值。

quantile

计算样本的分位数(0到1)。

sum

值的总和。布尔值会被强制转换为1(True)和0(False)。

mean

值的平均值。

median

值的算术中位数。(50%中位数)

mad

根据平均值计算平均绝对离差。 |

var

样本值的方差。

std

样本值的标准差。

skew

样本值的偏度(三阶矩)。

kurt

样本值的峰度(四阶矩)。

cumsum

样本值的累积和。布尔值会被强制转换为1(True)和0(False)。

cummin

样本值的累计最大值。 布尔值会被强制转换为1(True)和0(False)。

cummax

样本值的累计最小值。布尔值会被强制转换为1(True)和0(False)。

cumprod

样本值的累计积。布尔值会被强制转换为1(True)和0(False)。

diff

计算一阶差分(对时间序列很有用)。

pct_change

计算百分数变化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值