Pythonnumpy中常⽤的数据运算
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
python获取数组长度创建⼀个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
计算对⾓线元素的和。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论