数据小站
数据科学成长之路

numpy基本手册

1.ndarry属性
dtype,shape,size,itemsize,ndim,nbytes
2.ndarry创建
np.[array,asarray,arange,ones,zeros,empty,eye..]
3.data类型
arr.dtype
arr.astype() 创建新数组
4.标量计算
元素级,广播
5.索引切片
索引切片(连续选取) 返回视图
boor(指定选取) 返回新对象 arr[arr>0]=0 布尔设置数组值
花式索引(指定选取) 返回新对象
6.转置
arr.T,arr.transpose((1,2,0))三维旋转
7.ndarray ufunc
np.[abs,fabs,sqrt,square,exp,log..,sign,ceil,floor,rint,modf,isnan,cos/sin…,]
np.[add,subtract,multiply,power,divide,maximum/fmax,minimum/fmin,mod,copysign..]
8.np.where(cond,xarr,yarr)
标量,嵌套
9.arr ufunc
arr.[sum,mean,max,min,std,var,argmin,argmax,cumsum,cumprod]
(arr>0).sum()
bools.any() bools.all()
10排序
arr.sort(axis=1) 修改本身
np.sort() 返回副本
11.归一、集合
np.unique(arr) ==> sroted(set(arr))
np.inld(arr1,arr2) 返回arr1中元素是否在arr2中的布尔数组
np.[intersectld(x,y),unionld(x,y),inld(x,y),setdiffld(x,y),setxold(x,y)]
12.(.npy)格式加载保存
np.save 未压缩二进制保存.npy格式
np.savev 压缩二进制保存.npy格式
np.save(‘arr.npy’,a=arr1,b=arr2) 压缩多数组
narr=np.load(arr.npy) 加载数组 多对象的.npy文件加载类似字典对象,narr[‘a’]
13.文件读取
np.loadtxt(‘…txt’,delimiter=’,’)
14.矩阵计算
numpy.linalg 线代库
np.dot(x,y) <==> x.dot(y) 点积
15.random
np.random.[seed,permutation,shuffle,rand,randint,randn,binomial,normal,beta,chisquare,gamma,uniform]
np.random.randint(0,2,size=1000) 随机漫步
np.where(draws>0,1,-1)
arr.cumsum()
arr.max()
(np.abs(arr)>=10).agrmax()
np.random.randint(0,2 size=(1000,5))
np.where(arr>0,1,-1)
arr.cumsum(1)
arr.max() arr.min()
hits5=(np.abs(arr)>=30).any(1)
hits5.sum()

numpy的通用函数

一元函数

abc, fabc 计算绝对值

sqrt 计算平方根

square 计算各元素平方

exp 计算各原始指数e^

log log10 log2 log1p , 计算各元素的log值,分别为以自然对数e, 10, 2,为底计算。 log1p为各元素+1 的值 log(1+x)

sign 计算各元素正负值, 为 1 -1 0

ceil floor rint 各元素向上取整 向下取整 四舍五入取整

modf 将数组的整数和小数以两个独立数组返回

isnan 返回哪些是nan的boor数组

isfinite / isinf 分别返回哪些数组是有穷(非inf 非NaN) 或哪些数组是无穷的 布尔数组

cos cosh sin sinh tan tanh 普通型和双曲型三角函数

arccos arccosh arcsin arcsinh.. 反三角函数

二元函数

add 将数组对应元素相加

subtract 第一个数组元素减去第二个数组元素值

multiply 对应元素相乘

divide /floor_divide 相除,或取整除

power 第一个数组元素为底, 第二个数组元素为幂, 取幂次方

maximum/fmax 元素级最大值, fmax 忽略NaN

minximum/fmix 元素级最小值, fmax 忽略NaN

mod 元素级相除取余数

copysige 将第二个数组的符号, 给第一个数组

numpy的高级函数

np.meshgrid

np.meshgrid函数接受两个一维数组,并产 生两个二维矩阵(对应于两个数组中所有的(x,y)对)

points  = np.arange(-1,1,0.1)
xs, ys = np.meshgrid(points, points)
z = np.sqrt(xs ** 2 + ys ** 2)
plt.imshow(z)
plt.show()

np.where

numpy.where函数是三元表达式x if condition else y的矢量化版 本

np.sort 排序函数数组排序,取分位

arr.sort() 可以就地排序, 修改原数组本身, 通过axis = 0/1 来限制排序的轴

np.sort(arr) sort当做np的顶级函数时,返回arr数组的排序后副本,原数组不变。

可以通过排序,选择指定的位置,来获取数组中元素的分位点。

numpy的数学统计函数

聚合函数

mean sum std var min max 这类聚合函数, 既可以当做数组的实例方法调用,也可以当做numpy的顶级函数调用。

累加累乘函数

cumsum cumpord 累加/累乘函数

索引函数

argmax argmin 返回最大 最小值的索引

统计函数中,布尔值会强制转化成0和1进行计算。

numpy的数组集合函数

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) 集合对称差,存在于一个数组但不同时存在于两个数组的元素

numpy的线性代数

在numpy.linalg模块下,提供了常用的线性代数中的矩阵计算方法

diag

dot 矩阵乘法

trace 求迹,矩阵对角线元素和

det 计算矩阵行列式

eig 计算放在的特征值和特征向量

inv 计算放在的逆

pinv 计算矩阵的伪逆

qr QR分解

svd 计算奇异值分解SVD

solve 计算线下方程组 Ax=b ,A为方阵

lstsq 计算Ax=b的最小二乘

numpy.randon随机数

seed 设置种子 np.random.seed(12345)

permutation

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

rand 均匀分布样本

randint 从给定上下限范围内随机生成整数

randn 正态分布样本,均值0 标准差为1

binomial 产生二项分布样本值

normal 产生正态分布样本值

beta Beta分布样本值

chisquart 卡方分布样本值

gamma Gamma分布样本值

uniform 0-1区间的均匀分布样本值

杂项

重塑数组
reshape -1 时,它表示该维度的大小由 数据本身推断而来:
arr.reshape((-1,5))
ravel flatten
扁平化,将多维数组压缩成一行
布尔索引
使用布尔索引时,布尔值的长度必须与被索引的轴长度一致
arr[arr>0] = 0 将数组中所有大于0的元素赋值为0
(arr>0).sum() arr中大于0元素的个数
合并
concatenate
np.concatenate([arr1,arr2], axis = 0/1)
vstack hstack 是拼接的简化形式
np.vstack([arr1,arr2])
数组拆分
split 沿指定轴的拆分数组
np.split(arr, [1,3])
重复数组
repeat repeat会将数组中的各个元素重复一定次数,从而产生一个更大的数组
arr.repeat(3 , axis = 0/1)
不设置axis时,数组会被扁平化,拉成一维
只传入一个整数,各个元素都会被复制整数次
如果传入的是一组整数,则各元素就可以重复不同的次数 arr.repeat([2,3,4])
tile 功能是沿指定轴向堆叠数组的副
np.tile(arr,2) 第二个参数是平铺的数量,按水平堆叠。
np.tile(arr, (2,1)) 如果要按垂直堆叠时,需要设置两个轴
花式索引等价函数
arr.take
排序
argsort
lexsort 功能和argsort, 拓展是字典顺,可以对多个键值排序
arr[:,::-1] 反转数组

计算曲线面积np.trapz()

np.trapz() 以梯形面积方式求取曲线积分,计算曲线面积。

np.trapz() 有3个参数可以设置, y为数组,必填 。 x 和 dx 为控制参数, 当x为空时,取dx, dx默认为1.

np.trapz() 参数使用说明:

y为一组数组,对应坐标系y轴上的位置。

x为可选项,为输入数组y的每个值上,对应在坐标系x轴上的位置。 由y和x,最终确定每个点的坐标,最终可以计算曲线的面积。

当x不设置时,默认每个y值之间的间距为dx=1.曲线的面积 本身与在x轴上的位置无关,与在x轴的长度有关(在x轴上从1到3,和 从2到4,长度一样,y值不变面积也一样)。 dx不用关系y值在x轴上的起始结束范围,只开了每个点之间的间距。

def trapz(y, x=None, dx=1.0, axis=-1):
"""
Integrate along the given axis using the composite trapezoidal rule.

Integrate `y` (`x`) along given axis.

Parameters
----------
y : array_like
Input array to integrate.
x : array_like, optional
The sample points corresponding to the `y` values. If `x` is None,
the sample points are assumed to be evenly spaced `dx` apart. The
default is None.
dx : scalar, optional
The spacing between sample points when `x` is None. The default is 1.
axis : int, optional
The axis along which to integrate.

Returns
-------
trapz : float
Definite integral as approximated by trapezoidal rule.

np.trapz([1,2,3]) ==> 4, 计算方式为梯形面积 (1+3) * 2 / 2 = 4

np.trapz([1,2,3],dx=2) ==> 8, 计算方式为梯形面积 (1+3) * 2 * 2 / 2 = 8 , dx =2 表示 y=[1,2,3] 每个点之间在x轴上长度间距为2

np.trapz([1,2,3],[4,5,6]) ==> 4 设置每个y值对应在x轴上的位置

赞(0) 打赏
未经允许不得转载:技术文档分享 » numpy基本手册

评论 抢沙发