设为首页 加入收藏

TOP

Python入门:Numpy 和 Pandas 基本语法
2018-05-21 15:48:20 】 浏览:129
Tags:Python 入门 Numpy Pandas 基本 语法

numpy和pandas是python进行数据分析的非常简洁方便的工具,话不多说,下面先简单介绍一些关于他们入门的一些知识。下面我尽量通过一些简单的代码来解释一下他们该怎么使用。以下内容并不是系统的知识体系,我只是尽可能把最基础的知识点列写一下。


一、numpy
1、array


import numpy
list_1 = [1,2,3,4]
array_1 = numpy.array(list_1) # 一维数组
list_2 = [4,5,6,7]
array_2 = numpy.array([list_1,list_2]) # 二维数组1 array_2.shape # 查看数组特征,eg:2行4列
array_2.size # 查看元素个数, eg:8
array_2.dtype # 查看数组类型,eg:int64


注:numpy.arange(n) #与python中的range区别是前面有个a


numpy.zeros(s) # 全0矩阵,s可以为一个数也可以为一个列表,eg:[2,3]表示2*3的二维数组
numpy.eye(a) # 单位矩阵,生成的是浮点数


  一维:array_1[2] 、array_1[1:4]
  二维:array_2[1][2] 、array_2[1,2] 、array_2[:1,1:4]


  其中可以根据python中列表的切片来访问数据


2、数组与矩阵运算


~~数组array


numpy.random.randn(10) # 十个元素的一维数组
numpy.random.randint(10,size=20).reshape(4,5) # 产生20个10以内的随机整数,后面的reshape是将这些数重新写成一个4*5的二维数组


~~矩阵matric


numpy.mat([1,2,3],[4,5,6]) # 生成一个二维矩阵
numpy.mat(array_1) # 将数组转换成矩阵


注:矩阵之间维度相同可以直接进行加减运算,而乘除运算需要行和列交叉对应,参照线性代数中的知识。


import numpy as np
f = open('x.pkl','wb')
#序列化到硬盘


#pickle
import pickle
pickle.dump(x,f) # 产生pkl文件
pickle.load(f) # 提取pkl文件


#numpy本身的工具
numpy.save('one_array',x)
numpy.load('one_array.npy')
numpy.savez('two_array.npz',a=x,b=y) # 对多个进行操作,进行压缩储存
c = numpy.load('two_array.npz') # 提取文件
c['a'] #第一个文件
c['b'] #第二个文件


df1 = pd.read_clipboard()
df1.to_clipboard() # 写入粘贴板


df1.to_csv('名字.csv',index=False) # false则表示不添加索引号
df2 = pd.read_csv('df1.csv') # 读取CSV文件


df1.to_json() # 转化成json文件
pd.read_json(df1.to_json()) # 读取json文件


df1.to_html('df1_html') # 转换成HTML文件


df1.to_excel('df1.xlsx') # 生成Excel文件


df.head() # 返回前五行
df.tail() # 返回后五行
# 返回更多的内容则在括号中写出来,不写则默认为五行
df.iloc[:,:] #索引切片,定位,基于index,与索引名无关
df.loc[:,:] # 根据索引名来,label来过滤


df.dropna(axis=0,how='any',thresh=None) # axis表示行和列0,1来表示,how为any时表示有Nan就删掉,为all时表示全为nan时才删掉;thresh表示一个界限,超过这个数字的nan则被删掉
df.fillna(value=1) # 表示所有为nan的地方填充为1
df.fillna(value={0:0,1:1,2:2,3:3}) # 表示第一列的填充1,第二列的填充2,后面同理


注:dropna,fillna不改变原始数组


注:dataframe的index和columns都可以转换成多级的


当想在一个dataframe中加一列(columns),可以直接加df['列名']=Series([数据])
也可以通过map:创建一个字典,字典中的键是dataframe中的columns:
df1['新列名'] = df1['字典中的键那一列'].map(那个字典) 这个可以固定对应位置,方便改值,可以指定index来改值


s1.replace({1,np.nan}) # 通过字典来改值
s1.replace([1,2,3],[10,20,30]) # 把123索引改成10,20,30 


  以上内容是我的一点点总结,希望能给有需要的朋友带来带你帮助,也希望有大神来指点指点。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Python绘图之matplotlib基本语法 下一篇Python 函数的作用域

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目