python及numpy,pandas易混淆的点
来源:互联网 发布:idea java工程 编辑:程序博客网 时间:2024/06/06 02:44
初接触python觉得及其友好(类似matlab),尤其是一些令人拍案叫绝不可思议的简单命令就可以完成非常复杂的计算,但是真正接触一下就发现,python比matlab有很多不一样的特性。
首先python的工具包(类似于C的库函数)非常多,很多功能都有重复,所以选好包很重要,最简单的选择方法就是用时下最流行的包,社区比较活跃,遇到问题网上一搜很多答案,而且更新和维护也比较好。
在数值计算中常用的包就是numpy,pandas,scipy以及绘图用的matplotlib。
numpy
numpy的优势是矩阵运算,最大的特点是引入了ndarray-多维数组的概念。在ndarray中,每个[]就代表1维。这里和matlab或者C++或者fortran都很不一样,没有行优先或者列优先的概念。但是numpy还有一个数据结构是mat。个人觉得是为了便于使用以上语言的人们使用的。例如mat结构可以非常方便地做转置(matName.T),求逆(matName.I),求伴随矩阵(matName.A)
pandas
pandas的Series数据结构对象:类似于numpy的ndarray。
pd.Series(data),data可以是numpy的array或者python的列表都可以
obj=pd.Series([4,7,-5,3])
obj.index 返回obj的索引
obj.values 返回obj的数据
如果在初始化的时候没有指定索引,默认索引是从0开始到N-1的整数,也可以在初始化的时候就指定索引
obj2=pd.Series([1,2,3],index=['a','b','c']) 这里index=后面是['a','b','c'],也可以是别的列表对象
Series对象的index还可以单独赋值,例如obj2的index还可以这样赋值:
obj2.index2=[....]
obj2['a']利用索引访问数据
字典结构是python的数据结构,pandas中的类似数据结构成为数据框架(DataFrame)
可以把python字典类型的数据直接给Series对象,pandas会自动将key转换为index,data还是data
sdata={'a':1, 'b':2}
obj3=Series(sdata)
判断是否是空pd.isnull(Series对象) 或者是 pd.notnull(Series对象)
Series对象也有判断数据是否是空的函数.isnull()
Series对象也可以有一些基本的算数运算,例如obj+obj2. 在具体执行时,对先比对index,对相同index的数据相加,如果obj有某个index而obj1没有,则数据为NaN
DataFrame的初始化
对于python的字典结构数据对象,可以直接创建pandas的DataFrame对象,例如:
data={'name':['Sara', 'Ben'],
'Age':[23,34]}
frame=pd.DataFrame(data)
得到一个column分别为name和age,index是0,1的DataFrame。DataFrame就是按照column和index组织起来的数据集合,类似于excel表格,也类似于基本的database结构。
column1 column2 column3
index1 data11 data12 data13
index2 data21 data22 data23
index3 data31 data32 data33
frame1=pd.DataFrame(data,column=[],index=[])
frame1.column 返回column列表,是index类型
要访问frame1中的某一列数据,可以用frame1['column_name']或者frame1.column_name,这两种方式都可以。
行元素的获取,可以用:frame.ix[index_name]
每列的数据都可以单独赋值: frame.column_name=[....]
容易混淆/出错的地方:
生成0-N数列的函数:在python中是range(N+1),但是在numpy中是arange(N+1)
数组切片:
numpy的零矩阵 np.zeros((3,3)) 3维零矩阵,对于矩阵,形参必须是带括号()的,即tuple类型
改变多维数组维数 np.reshape((dim1,dim2)) 必须是()的tuple类型
- python及numpy,pandas易混淆的点
- Numpy, Pandas, 及Python原生的排序方法
- numpy中的易混淆点
- python numpy pandas的安装及pycharm anaconda的安装及配置
- Numpy混淆点理解
- python+pandas+scipy+numpy
- linux离线搭建Python环境及安装numpy、pandas
- linux离线搭建Python环境及安装numpy、pandas
- python易混淆点三
- Python之Numpy之pandas
- python安装numpy和pandas
- Something About Python(numpy,pandas)
- python pandas numpy matplotlib 常用方法及函数 转载▼ import numpy as np import pandas as pd import matplotlib
- Python 中对数据的排序问题(numpy , pandas)
- python的numpy、scipy、pandas、matplotlib、pip库下载
- windows下python numpy,scipy,pandas 等模块的安装
- Python Pandas与Numpy中axis参数的二义性
- Python Pandas与Numpy中axis参数的二义性
- Powershell在内网渗透中的利用
- 【java笔试系列三】ArrayList和LinkList
- 深入 char * ,char ** ,char a[ ] ,char *a[] 内核
- ubuntu14.04系统假死及强制关机后产生的问题解决
- 大数据架构hadoop初体验一
- python及numpy,pandas易混淆的点
- List和ArrayList, Map和HashMap的区别
- sqlite3数据库-常用命令
- python时间处理包:datetime,time
- 偏差和方差
- 问题解决:matplotlib动画保存为mp4报错KeyError: 'ffmpeg'
- Linux C++Timer(用信号量实现)
- 配置tensorflow GPU深度学习环境
- PHP检测函数是否存在