Numpy和Pandas常用函数速查表
Numpy
函数 | 功能 |
---|---|
np.sin() | 对每个元素求正弦 |
np.cos() | 得每个元素求余弦 |
np.arange(num1, num2) | 创建一个从num1到num2-1的数组 |
array < number | 返回一个bool值的数组,大于number为True,小于为False |
array.reshape(行,列) | 改变array的形状 |
array1 * array2 | 两个array对应元素相乘 |
np.dot(array1, array2) | 两个array进行矩阵乘法 |
array1.dot(array2) | 矩阵乘法 |
np.random.random((行, 列)) | 生成一个行x列的随机数组,都是0到1 |
np.sum(array[,axis=0/1]) | 求和,0是按行,1是按列 |
np.min() | 最小值 |
np.max() | 最大值 |
np.argmin() | 最小值索引 |
np.argmax() | 最小值索引 |
np.mean() | 均值 |
np.average() | 均值 |
np.median() | 中值 |
np.cumsum() | 累加 |
np.diff() | 累差 |
np.nonzero() | 返回两个数组,分别为非零元素的行和列 |
np.sort() | 逐行排序 |
np.transpose() | 转置 |
array.T | 转置 |
np.clip(array, min, max) | 所有小于nim的值置min,大于max的值置max |
array[num_index] | |
array[num1][num2], array[num1,num2] | 二维索引 |
array[:, 1] | 取第1列 |
array.flatten | 返回一个将array展开的一维数组 |
array.flat | 将array展开为一个一维数组,不同的是这是一个迭代器 |
np.vstack((array1, array2)) | 将两个数组上下合并 |
np.hstack((array1, array2, array3)) | 将多个array左右合并 |
array[np.newaxis,:] | 在行上加一个维度,可使一维数组变成列向量 |
array[:, np.newaxis] | 在列上加一个维度 |
np.concatenate((array1, array2, array3), axis=0/1) | 合并多个array,0是竖着合并,1是横着合并 |
np.split(array,num, axis=0/1) | 0是横着切,1是竖着切。分成num份。array必须能被均分为num份 |
np.array_split(array, num, axis=0/1) | 不能均分时,将多出来的分给第一份。 |
np.vsplit(array, num) | 纵向分割 |
np.hsplit() | 横向分割 |
array1 = array2 | 两个array完全是同一个,只不过名字不同。改变一个,另一个也会改变 |
array2 = array1.copy() | 深拷贝,只copy值 |
Pandas
函数 | 功能 |
---|---|
pd.Series(list1, index=list2) | 将list1转变为dataframe,索引为list2 |
pd.DataFrame(array) | |
pd.DataFrame(dictionary) | 将字典转为DataFrame |
df.describe() | df的一些描述 |
df.dtypes | 类型 |
df.index | 所有行名 |
df.columns | 所有列名 |
df,values | 所有值 |
df.T | 转置 |
df.sort_index(axis=0/1, ascending=True/False) | 按行或列排序,倒叙还是顺序 |
df[‘A’] df.A | 选择数据 |
df[0:3] | 切片 |
df.loc[标签] | 选择标签 |
df.iloc[行数,列数] | 按位置筛选 |
df.ix[行数,列名] | 前者为数字,后者可为字符串 |
df[新列名] = 内容 | 新加列 |
df.dropna(axis=0/1, how=‘any’/‘all’ | 舍去行还是列的nan值, any表示只要有nan就舍去,all表示全部为nan时才删除 |
df.fillna(value=数) | 填充缺失值 |
df.isnull() | df里全为nan时 |
np.any(df.isnull()) | 查看是否有缺失值 |
pd.concat([df1,df2,df3,df4],axis=0) | 0是竖向合并,1是横向合并 |
pd.concat([df1, df2, df3]), axis=0/1, ignore_index=True/False ) | 合并数组,并且是否忽视原有的index |
pd. concat([df1, df2],join=‘outter’/‘inner’) | 当两个df大小不同时,默认outter,不共有的地方补nan。inner表示删除共有的部分 |
pd.concat([df1, df2,df3], axis=0/1,join_axis=[df1.index]) | 按照df1的index合并,df2没有的补nan,df2比df1多的删除 |
df1.append(s1, ignore_index=True) | append是在原来DataFrame下面添加一行,如有多行,前面用列表 |
pd.merge(df1, df2, on=列名) | 按照设置的共有的列名处合并,默认how=’inner‘,how还可以是outter, left, right。inner表示只考虑列名中二者一样的行,outter表示不管一样不一样,全都保留,不一样的部分补nan。left表示以第一个df为准,他不变,在指定列中df2和他一样,就保留df2的那一行,不一样,就补nan。right则是按第二个 |
df.cumsum() | 累加 |
df.plot() | 绘图 |
df.head(num) | 只打印前num行 |
写的有点乱,如有错误,欢迎指正。