numpy、pandas常用函数功能

numpy和pandas常用函数功能

一、Numpy

  • python科学计算的基础模块
  • 数据格式:ndarray
  • 安装:sudo apt-get install python-numpy、pip install numpy

1.1 常用功能

数组创建
np.array()、np.zeros()、np.ones()、np.empty()、np.arrange()
属性:dtype、shape

索引
arr[][]、 arr[:, :]

条件判断
np.where(condition, arr1, arr2)

布尔数组
any(): 用于测试数组(向量)中是否存在True
all(): 用于确定数组中是否全是True

改变数组形状
reshape()、flatten()

连接和切分

  • 水平方向
    numpy.hstack((a,b))
    numpy.concatenate((a,b),axis=1)
  • 垂直方向
    numpy.vstack(a,b)
    numpy.concartenate((a,b),axis=0)
  • 深度方向
    numpy.dstack()

  • row_stack

  • column_stack

结构化数组
平铺函数: numpy.tile(a, repeats)
元素复制函数:numpy.repeat(a, repeats, axis=None)
添加元素: numpy.append(arr, values, axis=None)
删除元素:numpy.delete(arr,obj,axis=None)

矩阵操作
转置: .T、transpose()

统计操作

函数功能
sum对数组中全部或某轴向的元素求和。零长度的数组的sum为0
mean算数平均数。零长度的数组的mean为NaN
std、var分别为标准差和方差,自由度可调(默认为n)
min、max最大值和最小值
argmin、argmax分别为最大和最小元素的索引
cumsum所有元素的累计和
cumprod所有元素的累计积

文件读写
savetxt(fileName,data)
loadtxt:读取csv文件
np.loadtxt(filepath,delimiter,usecols,unpack)

与list的转换
转为list:arr.tolist()
list转为array:np.array(list1)

二、pandas

  • pandas基于numpy构建
  • 安装: sudo apt-get install python-pandas、pip install pandas

2.1 series对象

  • 基本数据结构:Series和DataFrame。
  • Series是一种类似于一维数组的对象
  • Series由一组数据以及一组与之相关的数据标签(即索引)组。

series的使用

from pandas import Series
obj = Series([1,3,5])
print(obj)
# 0 1
# 1 3
# 2 5

print(obj.values)
print(obj.index)
# 自定义索引
obj = Series(['aa','bb','cc'], index=['a1','a2','a3'])

# 字典转为series
salarydata = {'a':5000, 'b':8000, 'c':7500}
obj = Series(salarydata)

#判断是否有缺失值
print(pd.isnull(obj2))
print(pd.notnull(obj2))

2.2 DataFrame

  • DataFrame是一个表格型的数据结构,它含有一组有序的列
  • 既有行索引,也有列索引

DataFrame的使用

from pandas import DataFrame

data = {'Number':[1,2,3,4,5],
'Name':['Alvin','Teresa','Elly','James','Nancy'],
'Scores':[98.5, 100.0, 93.0,98.5,90.5]}

frame = DataFrame(data)
print(frame)

# 创建指定序列顺序的DataFrame
frame2 = DataFrame(data, columns=['Number','Name','Scores']) 
print(frame2)

#指定index
frame3 = DataFrame(data, columns['Number','Name','Scores','Age'],index=['No.01','No.02','No.03','No.04','No.05'])

#访问操作
dataframe对象[ 列名称 ] 或 dataframe对象.列名称

#行列索引名
frame.index.name
frame.columns.name
frame.values

#head和tail的方法
Head获取开头若干行数据
tail获取结尾若干行数据

#info方法
获取数据信息,包括索引类型和列类型、非空值和内存使用

DataFrame支持构造

类型说明
二维 ndarray数据矩阵,还可以传入行标和列标
由数组、列表或元组组成的字典每个序列会变成DataFrame的一列。所有序列的长度必须相同。
NumPy的钢结构化/记录数组类似于“由数组组成的字典”
由Series组成的字典每个Series会成为一列。如果没有显示指定索引,则个Series的索引会被合并成结果饿行索引
由字典组成的字典各内层字典会成为一列。键会被合并成结果的行索引,跟“由Series组成的字典”的情况一样
字典或Series的列表各项将会成为DataFrame的一行。字典键或Series索引的并集将会成为DataFrame的列标
由列表或元组组成的列表类似于“二维ndarry”
另一个DataFrame该DataFrame的索引将会被沿用,除非显式指定了其他索引
NumPy的MaskedArray类似于“二维ndarry”的情况,只是掩码值在结果DataFrame会变成NA/缺失值

2.3 基本数据分析

索引
series同numpy类似,但索引值可以不为整数。
切片
与numpy不同,其末端是包含的。
算数运算

  • 它可以对不同索引的对象进行算数运算。

  • 在将对象相加时,如果存在不同索引对,则结果的索引就是该索引对的并集。

  • 对于DataFrame对象而言,对齐操作同时发生在行和列上。有对应的值则相加,没有则用NAN填充

  • add(加)、sub(减)、mul(乘)、div(除),可以加入fill_value
    df1.add(df2, fill_value=0)

  • 删除
    df1 = df.drop([‘No3’,‘No1’] , axis=0)

  • 排序
    s.sort_index(ascending=?, axis=?):axis=0 行索引、axis=1 列索引
    s.sort_values(by=)by指定列排序

  • 改变索引
    Pandas对象的一个重要方法是 reindex(),其作用是创建一个适应新索引的新对象(如果某个索引值当前不存在,就引入缺失值NAN)。可用fill_value、
    也可引入method填充:

参数说明
ffill 或 pad前向填充(或搬运)值
dfill 或 backfill后向填充(或搬运)值。

columns = new_columns

  • ix的标签索引
    frame.ix[[‘a’,‘b’,‘c’,‘d’], new_columns]
    reindex的参数
类型说明
index用作索引的新序列。既可以是Index实例,也可以是其他序列型的Python数据结构。Index 会被完全使用,就像没有任何复制一样。
method插值(填充)方式。
fill_value在重新索引的过程中,需要引入缺失值时使用的替代值。
limit前向或后向填充时的最大填充量。
level在MultiIndex的指定级别上匹配简单索引,否则选取其子集。
copy默认为True,无论如何都复制;如果为False,则新旧相等就不复制。
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值