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

计算百分数变化。

python npv 计算公式_Python numpy 中常用的数据运算相关推荐

  1. Python中用pandas将numpy中的数组数据保存到csv文件

    Python中用pandas将numpy中的数组数据保存到csv文件 本博客转载自:[1]https://blog.csdn.net/grey_csdn/article/details/7018587 ...

  2. python数组求和_Python NumPy中的数组求和函数sum | 坐倚北风

    在Python中可以使用NumPy中的sum函数来进行数值求和,sum方法的格式如下: numpy.sum(a, axis=None, dtype=None, out=None, keepdims=, ...

  3. 【Python】详解Numpy中的点积运算

    1. 引言 根据数学家的说法,点积是一种运算,它取两个等长的向量作为输入,然后返回一个数字(标量).向量A与向量B的点积用符号表示为A•B.在线性代数中,点积是输入向量中每个对应元素的乘积之和. 本文 ...

  4. python dataframe函数_python pandas中DataFrame类型数据操作函数的方法

    这篇文章主要介绍了关于python pandas中DataFrame类型数据操作函数的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 python数据分析工具pandas中Data ...

  5. python操作符顺序_Python语言中的操作符与运算顺序

    在新鲜出炉的9月TIOBE编程语言排行榜上,Python历史性的挤下C++,次进入前三位,Python的热度也以肉眼可见的速度快速上涨着,学习Python的人越来越多,不只是成人,很多青少儿也选择从P ...

  6. python npv 计算公式_python数据分析进阶之路(二)----Numpy进阶

    简单应用 矩阵创建及运算 1.手动创建矩阵 np.mat('str') 利用mat('字符串')函数创建矩阵,其中字符串的 表示中,矩阵的行与行之间用分号隔开,行内的元素之间用空格隔开. b = np ...

  7. python npv 计算公式_python – IRR实现中使用的数值方法是什么?

    ActiveState Recipes站点具有在Python中实现 Internal Rate of Return的功能: def irr(cashflows,iterations=100): &qu ...

  8. python npv 计算公式_Python for NPV and IRR

    计算NPV和IRR,可以直接调用numpy或是numpy-financial模块的npv()和irr()函数,具体请移步https://www.jianshu.com/p/91b0ee7a98c8 . ...

  9. 在R、Python和Julia中常用的数据可视化技术

    俗话说"一图胜千言".通过各种图片和图形化展示,我们可以更清晰地表达很多抽象概念.理论.数据模式或某些想法.在本章中,我们首先解释为什么应该关心数据可视化.然后,我们将讨论几种在R ...

最新文章

  1. 【2017上半年中国AI融资英雄榜】TOP10融资50亿元,二八定律明显
  2. C++种子点搜索算法之线扫描方法的实现
  3. c语言空中升级协议,esp32 http空中升级
  4. 第一次react-native项目实践要点总结
  5. 036、Linux下ipmitool命令
  6. 聚类算法中各种距离的计算与python的具体实现代码
  7. mysql互为主从利弊_MySQL互为主从复制常见问题
  8. 【MSTR产品】获取当前登陆用户的login_id
  9. 内网安装nginx+keepalived环境配置及简单使用
  10. [网络流24题]圆桌问题
  11. Repeater简单应用(动态改变内部样式)
  12. 如何使用JMeter 对Dubbo接口进行测试
  13. LeetCode--026--删除排序数组中的重复项(java)
  14. 【Thinking In Java】笔记之二 控制执行流程
  15. 计算机录入技术五笔输入法教案,五笔输入法教案
  16. vulnhub靶机-Pwned
  17. 计算机刚启动时的背景怎样改,通达信启动界面图片怎么改,怎么修改系统登陆时候欢迎界面的背景图片?...
  18. 好看更好玩的vivo S12 Pro,越用越顺手
  19. Java 并发编程解析 | 如何正确理解Java领域中的多线程模型,主要用来解决什么问题?
  20. 新概念英语2如何背诵啊?

热门文章

  1. python足球大数据分析_Python 抓取欧洲足球联赛数据进行大数据分析
  2. ERP中各种乱码处理
  3. python 散点图 置信区间_python matplotlib – 等高线图 – 置信区间
  4. AdSense 介绍
  5. 凤凰涅槃,浴火重生(2013年总结)
  6. Selenium自动化测试入门(基于Python)
  7. [VB.NET]VB的vbFromUnicode、vbUnicode在vb.net中怎么使用
  8. cmd/bat 批处理文件(干货)
  9. 微信小程序 - 手持弹幕 | 全屏炫酷滚屏神器源代码模板,超详细代码和注释复制粘贴即可使用(全屏文字滚动,支持调节滚动速度、字体大小、字体颜色)文字内容横屏滚动,手机变身 LED 屏
  10. 网络管理之企业如果如何防范、排除ARP攻击