python及numpy,pandas易混淆的点
LeadAI学院祝您圣诞节快乐
正文共1849个字,5张图,预计阅读时间5分钟。
初接触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类型。
原文链接:https://www.jianshu.com/p/01c030e160bc
查阅更为简洁方便的分类文章以及最新的课程、产品信息,请移步至全新呈现的“LeadAI学院官网”:
www.leadai.org
请关注人工智能LeadAI公众号,查看更多专业文章
大家都在看
LSTM模型在问答系统中的应用
基于TensorFlow的神经网络解决用户流失概览问题
最全常见算法工程师面试题目整理(一)
最全常见算法工程师面试题目整理(二)
TensorFlow从1到2 | 第三章 深度学习革命的开端:卷积神经网络
装饰器 | Python高级编程
今天不如来复习下Python基础
python及numpy,pandas易混淆的点相关推荐
- [机器学习]Python中Numpy,Pandas,Matplotlib,Scipy,Seaborn介绍
Python做数据挖掘很强大,最近几年很火的机器学习以及较为前沿的自然语言处理也会选用Python作为基础工具. 其中python做数据挖掘足够强大,不用怀疑. #1. Numpy介绍 Numpy是P ...
- 统计学(检验、分布)的 python(numpy/pandas/scipy) 实现
scipy 中统计相关的 api:https://docs.scipy.org/doc/scipy/reference/stats.html https://zhuanlan.zhihu.com/p/ ...
- python科学计算之numpy+pandas+matplotlib+mysql
简介 本文主要介绍了读取mysql中的数据,将其保存至numpy和pandas中,通过matplotlib进行可视化数据分析. 一.环境搭建 使用anaconda搭建科学计算环境,并安装相关软件包. ...
- 【莫烦Python】Numpy教程
目录 前言 1.numpy属性 2.numpy的array创建 3.numpy的基础运算 4.numpy的基础运算2 5.numpy的索引 6.numpy的array合并 7.numpy的array分 ...
- python 数据分析工具之 numpy pandas matplotlib
作为一个网络技术人员,机器学习是一种很有必要学习的技术,在这个数据爆炸的时代更是如此. python做数据分析,最常用以下几个库 numpy pandas matplotlib 一.Numpy库 为了 ...
- python安装pandas模块-python安装numpy和pandas的方法步骤
最近要对一系列数据做同比比较,需要用到numpy和pandas来计算,不过使用python安装numpy和pandas因为linux环境没有外网遇到了很多问题就记下来了.首要条件,python版本必须 ...
- Python 学习 —— Numpy 、Pandas 傻傻分不清楚
之前的文章里面谈到过,我从R转到Python上,一个很大的不习惯就是R的数据结构比较简单,但是Python的数据类型比较多,很容易就令人头脑混乱.但是今天学习了一下Udacity的课程,顿时就清楚多了 ...
- python编程基础(四):编程习惯、代码规范、易混淆之处
目录 编程习惯 代码规范 python中self的作用 易混淆之处 编程习惯 1. 添加主函数if __name__ == 'main': 2. 使用project_path = os.getcwd( ...
- Python语法易混淆
Python语法易混淆 这一篇负责记录学习python基础语法时遇到的一些易混淆点,以及与C++语法不同的表达. 字符串 Python 访问子字符串,可以使用方括号 [] 来截取字符串,字符串的截取的 ...
最新文章
- 解决jenkins控制台中文乱码问题
- ZABBIX3.0配置邮件报警
- java 招聘需求_Java人员要具备哪些技能 招聘需求包括什么
- 推动Windows的限制:句柄
- mysql alidata_linux下安装mysql | 学步园
- rust socket 客户端例子
- 本地存储和服务器存储
- 【青少年编程】【三级】猫咪抓老鼠游戏
- wsimport的使用
- 在群晖(Synology) 中运行115网盘Linux版(docker)
- Tajima's D的意义
- 电子技术在计算机的应用与未来展望,电子信息技术的应用特点与未来发展趋势研究...
- matlab 仿真三项异步电机,基于MATLAB三相异步电机的建模与仿真
- 传统图像增强算法python实现
- JAVA基础第三章 面向对象进阶--多态等
- 全国计算机考试第五套,计算机等级一级MS Office考试考题:第五套字处理题
- 跑步听歌用哪种耳机更合适、适合跑步专业的耳机推荐
- matlab将图片转成eps,【MATLAB】论文图片处理(各种数据图转换成eps格式)
- 某网站登录页面存在用户手机号信息泄露
- 学生成绩abcde怎样划分_中考成绩中ABCD等级代表的分数段是什么?
热门文章
- dw怎么修改html框架的宽度,Dreamweaver (dw)cs6中div标签宽度和高度设置方法
- c# 中wpfexcel_VS2017下编写C#程序读写Excel文件
- 马赛克 php,php实现图片局部打马赛克的方法
- jupyter notebook python环境_jupyter Notebook环境搭建
- php和windows对应,哪个.so文件可以用于windows系统中与.dll文件相对应的linux系统,以便将php连接到ms sql server...
- linux下找不到sqlite3头文件,关于CentOS 7下sqlite3找不到的问题解决
- 宠物合成网站源码_为什么加工宠物食品做不到真正的“清洁”?
- Centos7 修改主机名
- NanoPC-T3 64位裸机编程 —— 启动和运行状态切换
- Ubuntu:查询计算机软硬件信息