Numpy包简单介绍
详细介绍可以看Numpy帮助,也有很多资料,此文仅是一个简述性质的集成文章
1.简介
Numpy是Python的一个扩展包,语法和Matlab有很多相似之处。它支持高维数组和矩阵运算,也提供了许多数组和矩阵运算的函数。另外,它在数组和矩阵运算方面速度很快,效率很高。对数组的运算都可以算在每个元素上。如,A*2(A为3*3的矩阵),结果是A中的9个元素都乘2
1.1 索引与切片
数组索引一般用 [] 来实现,一维arratName[行],二维aName[行,列],三维[页,行,列],可以用冒号:代替某一维度,表示取该维度所有元素。如a[[1,2],[3,4]],a[:,1]为[2,4]
布尔型索引 布尔型数组的长度必须和被索引的轴长度一致
花式索引 利用整数数组进行索引
- print a[[4, 3, 0, 6]] # 打印a[4]、a[3]、a[0]和a[6]。
切片如下: a为3*3*3矩阵 b = a[1, :,:]
1.2 复制与镜像
用.copy()方法复制数组,= 直接赋值。赋值只能产生镜像,仅是给变量增加一个名称;复制可以生成另一个变量,两个变量相互独立。
1.3 数组转置和轴对换
转置为 arrayName.T
矩阵相乘 np.dot(array1,array2)
高维轴对换 .transpose 或 .swapaxes
1.4 按条件逻辑逻辑运算
如:a=np.arange(9).reshap(3,3) print(a>5), print(a[a>5])。第一个输出是True和False的矩阵,第二个输出6,7,8,9
因此,可以按条件选择数组元素
np.where的使用 语法:np.where(条件,表达式1,表达式2)条件为真执行表达式1,条件为假执行表达式2.
1.5 排序
.sort() 0为按列排序,1为按行排序
2.常用函数介绍
构造函数 |
说明 |
array |
将输入数据(列表、元组、数组等)转换为ndarray |
arange |
类似于range,返回一个ndarray |
ones |
根据指定大小和dtype创建一个全1数组 |
zeros |
根据指定大小和dtype创建一个全0数组 |
empty |
创建数组,只分配内存空间不填充任何值 |
eye, identity |
创建单位矩阵 |
运算函数(一元) |
说明 |
abs,fabs |
计算绝对值,计算复数的模。对于非复数,用fabs更快 |
sqrt |
开方 |
sqare |
平方 相当于a**2 |
exp |
计算各元素的e^x |
log, log10, log2, log(1+x) |
自然对数,底数为10,底数为2和log(1+x) |
ceil |
向上取整 |
floor |
向下取整 |
sign |
计算各元素的正负号 |
rint |
四舍五入到整数,保留dtype |
modf |
将整数部分和小数部分以两个独立数组返回 |
cos,sin,tan |
三角函数 |
arccos,arcsin,arctan |
反三角 |
运算函数(二元) |
说明 |
add |
将数组中对应的元素相加 |
subtract |
从第一个数组中减去第二个数组中的元素 |
multiply |
元素相乘 |
Divide, floor_divide |
相除,或向下取整除法 |
power |
Power(A,B) 计算A^B |
Max fmax |
计算最大值,fmax忽略NaN |
Min fmin |
计算最小值,fmin忽略NaN |
mod |
求模 |
copysign |
将第二数组中的符号复制给第一个数组元素 |
greater,greater_equal less,less_equal,equal, not_equal |
执行元素级的比较,最终产生布尔型数组 |
Logical_and, logical_or Logical_xor |
执行元素级的真值逻辑运算,产生布尔型数组 |
数学和统计方法 |
说明 |
sum |
对数组中全部或某轴向的元素求和,0为按列,1为按行 |
mean |
求平均 |
std, var |
标准差和方差 |
min, max |
最小值和最大值 |
argmin,argmax |
最大值和最小值的索引 |
cumsum |
所有元素累计和 |
cumprod |
所有元素累计积 |
去重、集合运算函数 |
说明 |
unique(x) |
计算X中的唯一元素,并返回有序结果 |
intersect1d(x,y) |
计算x和y中的公共元素,并返回有序结果 |
union1d(x,y) |
计算x和y的并集,返回有序结果 |
in1d(x,y) |
得到一个描述x的元素是否包含于y的布尔型数组 |
setdiff1d(x,y) |
集合的差,即元素在X中且不在Y中 |
setxor1d(x,y) |
集合的异或,即存在一个数组中,另外一个数组中没有 |
常用的np.linalg函数 |
说明 |
diag |
以一位数组的形式返回方阵的对角线 |
dot |
矩阵乘法 |
trace |
计算对角线元素的和 |
det |
计算矩阵行列式 |
eig |
计算方阵的特征值和特征向量 |
inv |
计算方阵的逆 |
pinv |
计算矩阵的Moore-Penrose伪逆 |
qr |
计算QR分解 |
svd |
计算奇异值分解 |
solve |
解线性方程Ax=b,A为一个方阵 |
lstsq |
计算Ax=b的最小二乘解 |
随机数生成 函数 |
说明 |
seed |
确定随机数生成器的种子 |
permutation |
返回一个序列的随机排列 |
shuffle |
对一个序列随机乱序 |
rand |
产生均匀分布的样本值 |
randint |
从给定的上下限范围内随机选取整数 |
randn |
产生正态分布(平均值为0,标准差为1) |
binomial |
产生二项分布的样本值 |
normal |
产生正态(高斯)分布的样本值 |
beta |
产生Beta分布的样本值 |
chisquare |
产生卡方分布的样本值 |
gamma |
产生Gramma分布的样本值 |
uniform |
产生在[0,1]中均匀分布的样本值 |
Numpy包简单介绍的更多相关文章
- python numpy 模块简单介绍
用python自带的list去处理数组效率很低, numpy就诞生了, 它提供了ndarry对象,N-dimensional object, 是存储单一数据类型的多维数组,即所有的元素都是同一种类型. ...
- Java学习记录-Jdk包简单介绍
java.applet Java语言编写的一些小应用程序 java.awt AWT 是Abstract Window ToolKit (抽象窗口工具包)的缩写,这个工具包提供了一套与本地图形界面进行交 ...
- 利用Python进行数据分析(4) NumPy基础: ndarray简单介绍
一.NumPy 是什么 NumPy 是 Python 科学计算的基础包,它专为进行严格的数字处理而产生.在之前的随笔里已有更加详细的介绍,这里不再赘述. 利用 Python 进行数据分析(一)简单介绍 ...
- 关于如何在其他包中写controller和简单介绍@SpringBootApplication
本文参考博客:https://blog.csdn.net/u013473691/article/details/52353923 关于@Configuration和@Bean参考博客:https:// ...
- 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍
一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目的是为了数据分析.它提供了大量高级的数据结构和对数据处理的方法. pandas 有两个主要的数据结构 ...
- python之pandas简单介绍及使用(一)
python之pandas简单介绍及使用(一) 一. Pandas简介1.Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为了解决数据 ...
- Python常用的库简单介绍一下
Python常用的库简单介绍一下fuzzywuzzy ,字符串模糊匹配. esmre ,正则表达式的加速器. colorama 主要用来给文本添加各种颜色,并且非常简单易用. Prettytable ...
- Linux的简单介绍和常用命令的介绍
Linux的简单介绍和常用命令的介绍 本说明以Ubuntu系统为例 Ubuntu系统的安装自行百度,或者参考http://www.cnblogs.com/CoderJYF/p/6091068.html ...
- iOS-iOS开发简单介绍
概览 终于到了真正接触IOS应用程序的时刻了,之前我们花了很多时间去讨论C语言.ObjC等知识,对于很多朋友而言开发IOS第一天就想直接看到成果,看到可以运行的IOS程序.但是这里我想强调一下,前面的 ...
随机推荐
- 举例说明:Hadoop vs. NoSql vs. Sql vs. NewSql
转自:http://blog.jobbole.com/86269/ 尽管层次数据库如今在大型机上依然被广泛使用,但关系数据库(RDBMS)(SQL)已经占领了数据库市场,并且表现的相当优异.我们存 ...
- 【BZOJ】1610: [Usaco2008 Feb]Line连线游戏(几何)
http://www.lydsy.com/JudgeOnline/problem.php?id=1610 两种做法,一种计算几何,一种解析几何,但是计算几何的复杂度远远搞出解析集合(虽然精度最高) 计 ...
- numpy生成随机数
如果你想说,我不想知道里面的逻辑和实现方法,只想要python生成随机数的代码,请移步本文末尾,最简单的demo帮你快速获取实现方法. 先开始背景故事说明: 在数据分析中,数据的获取是第一步,nump ...
- WPF Expander控件(扩展面板)
这算是我比较喜欢的一个控件,以前在Winform中也常用类似的.它包装了一块内容,通过单击一个小箭头按钮可以显示或隐藏所包含的内容.在线帮助以及Web页面经常使用这种技术,因为既可以包含大量内容,而又 ...
- openssl之EVP系列之8---EVP_Digest系列函数具体解释
openssl之EVP系列之8---EVP_Digest系列函数具体解释 ---依据openssl doc/crypto/EVP_DigestInit.pod翻译和自己的理解写成 (作 ...
- iOS开发之--最简单的导航按钮更换方法/导航颜色的改变
有很多时候,我们需要用到导航,那么更换导航的时候,是在那用那修改,还是自定义一个导航,或者是声明一个代理方法,经过查资料和对导航属性的一些了解,用一种方法最为简单,就是在入口类里面添加一个方法,调用偏 ...
- virtualbox虚拟机Linux系统与本地windows系统共享文件方法
转自:http://jingyan.baidu.com/article/2fb0ba40541a5900f2ec5f07.html
- 将java项目发布到本地的linux虚拟机上
1.首先安装虚拟机,这里就不介绍了. 2.然后要我下载了一个WinSCP用于windows和虚拟机之间的文件传输. 首先获得虚拟机的ip: 必须保持连接, 如果断开ip就是这样的 3.传输文件 将jd ...
- centos中调整tmpfs分区的大小
tmpfs是Linux/Unix系统上的一种基于内存的文件系统.tmpfs可以使用系统的内存或swap分区来存储文件.由此可见,tmpfs主要存储暂存的文件. tmpfs默认的大小是RM的一半,假如你 ...
- 前端性能优化-减少http请求,dns预解析,减少repaint和reflow
前端性能优化方法: 一 . 减少http请求 (1)通过合并图片,减少请求,俗称css sprites(css精灵)css sprites (2)lazyload懒加载,在需要的时候再加载 1.定义: ...