Numpy
DataFrame.searchsorted
DataFrame.searchsorted(q)返回一个由插入位置组成的ndarray对象1。q为一个数式,返回一个一维仅有一个数值的ndarray。
取[0]得到一个value
def get_quantile_count(group,q=0.5):
group=group.sort_values(by='prop',ascending=False)
return group.prop.cumsum().searchsorted(q)+1
diversity=top1000.groupby(['year','sex']).apply(get_quantile_count)
diversity=diversity.unstack('sex')
不取[0]得到:
return group.prop.cumsum().searchsorted(q)[0]+1
取[0]得到:
DataFrame.head(n=5)
返回前n行,n默认为5.
ndarray切片
ndarray切片返回的对象是原ndarray对象的一个视窗,未产生新的对象,对切片操作时,即对原对象操作。
arr=np.arange(10)
#out:array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
arr_slice=arr[5:8]
arr_slice[1]=12345
arr
#out:array([0,1,2,3,4,12,12345,12,8,9])
np.meshgrid(x,y)
传入:x轴上一个list, y轴上一个list
返回:平面上,x/y的直线相交形成的网格的x,y值矩阵。
nx,ny=(3,4)
x=np.linspace(0,2,nx)
y=np.linespace(3,6,ny)
xx,yy=np.meshgrid(x,y)
#xx:将一维数据x在0轴方向上拓展ny次
#xx:将一维数据y在1轴方向上拓展ny次
x=[0,1,2];y=⎡⎣⎢⎢⎢3456⎤⎦⎥⎥⎥
xx=⎡⎣⎢⎢⎢0,1,20,1,20,1,20,1,2⎤⎦⎥⎥⎥=⎡⎣⎢⎢⎢xxxx⎤⎦⎥⎥⎥;yy=⎡⎣⎢⎢⎢3,3,34,4,45,5,56,6,6⎤⎦⎥⎥⎥=[y,y,y,y]
用途:生成绘图时的(x, y)
求对数
#以e为底
np.log(x)
#以10为底
np.log10(x)