Python之numpy

numpy调用: import numpy as np

numpy关键点:

1.1 ndarray(n维数组对象)

两大属性:shape(每一维大小)和dtype(数据类型)

创建ndarray方式:array函数(注是函数,输入应为数组,而不是参数;可指定数据类型)、zeros ((3,4))、onesemptyarrange(10,30,5)函数,asarray,ones_like,zeros_like,empty_like,eye,identity

  • arrange函数:起始值,终值,步长
  • linspace函数:起始值,终值,数目(等差数列)
  • logspace函数:起始值,终值,数目(等比数列)

数据类型: intfloat complex bool object string_ unidcode_  

数据类型转换:astype函数

<span style="font-size:14px;color:#000000;">array2=array1.astype(np.float64)
</span>
数组间的操作:相同大小数组间的算术运算作用在每个元素上。

数组的索引和切片:arr[3:7] 包含3456但不包含7,左闭右开。数组的切片是在原来数组上,切片变数组跟着变。除非有明显的拷贝语句:arr.copy()

布尔索引:arr [ a==b ] (操作符包括== != - & | )

Fancy索引:(拷贝数据,而不像切片)  arr[ [ 2,4,5,1 ] ]; 负数表示从尾开始 

  • arr[ [2,4,5,1] ,[ 3,5,6,1] ]表示四个数对应的是(2,3),(4,5),(5,6),(1,1);arr[ [2,4,5,1] ] [ :,[3,5,6,1] ] 对应的是矩形区域按照fancy索引
  • np.ix_函数 arr[np.ix_([2,4,5,1],[3,5,6,1])]

转置数组:

  • arr.T
  • np.dot: np.dot(arr.T,arr)
  • arr.transpose((1,0,2)) 即改变第一维和第二维的顺序。返回视窗,不是拷贝。arr.swapaxes(1,2)
1.2 元素操作

Unary ufuncs
函数描述
abs, fabs计算基于元素的整形,浮点或复数的绝对值。fabs对于没有复数数据的快速版本
sqrt计算每个元素的平方根。等价于 arr ** 0.5
square计算每个元素的平方。等价于 arr ** 2
exp计算每个元素的指数。
log, log10, log2, log1p自然对数(基于e),基于10的对数,基于2的对数和 log(1+ x)
sign计算每个元素的符号:1(positive),0(zero), -1(negative)
ceil计算每个元素的天花板,即大于或等于每个元素的最小值
floor计算每个元素的地板,即小于或等于每个元素的最大值
rint圆整每个元素到最近的整数,保留dtype
modf分别返回分数和整数部分的数组
isnan返回布尔数组标识哪些元素是 NaN (不是一个数)
isfinite, isinf分别返回布尔数组标识哪些元素是有限的(non-inf, non-NaN)或无限的
cos, cosh, sin sinh, tan, tanhregular 和 hyperbolic 三角函数
arccos, arccosh, arcsin, arcsinh, arctan, arctanh反三角函数
logical_not计算基于元素的非x的真值。等价于 -arr
Binary universal funcitons
函数描述
add在数组中添加相应的元素
substract在第一个数组中减去第二个数组
multiply对数组元素相乘
divide, floor_divide除和地板除(去掉余数)
power使用第二个数组作为指数提升第一个数组中的元素
maximum, fmax基于元素的最大值。 fmax 忽略 NaN
minimum, fmin基于元素的最小值。 fmin 忽略 NaN
mod基于元素的模(取余)
copysign拷贝第二个参数的符号到第一个参数
greater, greater_equal, less, less_equal, not_equal基于元素的比较,产生布尔数组。等价于中缀操作符 >,>=, <, <=,==, !=
logical_and, logical_or, logical_xor计算各个元素逻辑操作的真值。等价于中缀操作符 &,|, ^

1.3 数组处理

meshgrid(x,y): 横坐标为x,纵坐标为y,构成坐标图

where:    np.where(cond, xarr, yarr) # xarr if cond else yarr

sum mean: 有一个参数为axis

cumsum(dim): 累计和,dim为选择的维度

cumprod(dim): 累计乘

方法描述
sum对数组的所有或一个轴向上的元素求和。零长度的数组的和为灵。
mean算术平均值。灵长度的数组的均值为NaN。
std, var标准差和方差,有可选的调整自由度(默认值为n)。
min, max最大值和最小值
argmin, argmax索引最小和最大元素。
cumsum从0元素开始的累计和。
cumprod从1元素开始的累计乘。

布尔操作: any all 返回bool值

sort排序:arr.sort(dim)就地修改,但是顶层的np.sort()为拷贝。

unique: np.unique(arr)取不重复的数组arr元素


1.4 数组文件的输入和输出

np.save('filename',arr)

np.load('filename')

np.savez('filename',a=arr,b=arr-1) #多个数据

rest=np.load('filename')

rest['b']


文本文件:

pandas: read_csv   read_table

np.loadtxt  np.genfromtxt  np.savatxt


1.5 线性代数

numpy.linalg 有一个关于矩阵分解,像转置,行列式等的一个标准集合

from numpy.linalg import inv, qr

x.dot(y)  np.dot(x,y)  #矩阵相乘

mat.T

inv(mat)

常用 numpy.linalg 函数
函数描述
diag返回一个方阵的对角线(或非对角线)元素为一个一维数组,或者转换一个一维数组到一个方阵(非对角线元素为零)
dot矩阵乘积
trace计算对角线上元素的和
detaa计算矩阵行列式
eig计算方阵的特征值和特征向量
inv计算方阵逆矩阵
pinv计算方阵 Moore-Penrose pseudo-inverse逆矩阵
qr计算 QR 分解
svd计算奇异值分解(SVD)
solve求解线性系统方程 Ax = b 的x,其中A是一个方阵
lstsq计算 y = Xb 的最小二乘解




参考文献:http://pda.readthedocs.io/en/latest/chp4.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值