python及numpy,pandas易混淆的点
https://blog.csdn.net/happyhorizion/article/details/77894035
初接触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类型
--------------------- 本文来自 lxy_Alex 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/happyhorizion/article/details/77894035?utm_source=copy
python及numpy,pandas易混淆的点的更多相关文章
- 【python】numpy pandas 特性(随时更新)
[value map] 用df.replace(dict)可以解决.但是如果dict太大,会非常非常慢. [array相加的维度规律][广播] (2,3) 能和 (3,) 相加,不能和(2,)相加 ( ...
- Python安装numpy,pandas慢,超时报错,下载不了的解决方法
由于python的默认源是国外的,所以下载的时候会很慢,甚至会出现超时下载失败,提供两个解决方法 1.设置pip的超时限制 打开cmd 输入pip --default-timeout=100 inst ...
- Python之numpy,pandas实践
Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言. Jupyter Notebook 的本质是一个 Web 应用程序,便 ...
- 统计学(检验、分布)的 python(numpy/pandas/scipy) 实现
scipy 中统计相关的 api:https://docs.scipy.org/doc/scipy/reference/stats.html https://zhuanlan.zhihu.com/p/ ...
- 有关python numpy pandas scipy 等 能在YARN集群上 运行PySpark
有关这个问题,似乎这个在某些时候,用python写好,且spark没有响应的算法支持, 能否能在YARN集群上 运行PySpark方式, 将python分析程序提交上去? Spark Applicat ...
- Python: NumPy, Pandas学习资料
NumPy 学习资料 书籍 NumPy Cookbook_[Idris2012] NumPy Beginner's Guide,3rd_[Idris2015] Python数据分析基础教程:NumPy ...
- 第一章:AI人工智能 の 数据预处理编程实战 Numpy, Pandas, Matplotlib, Scikit-Learn
本课主题 数据中 Independent 变量和 Dependent 变量 Python 数据预处理的三大神器:Numpy.Pandas.Matplotlib Scikit-Learn 的机器学习实战 ...
- python 数据分析工具之 numpy pandas matplotlib
作为一个网络技术人员,机器学习是一种很有必要学习的技术,在这个数据爆炸的时代更是如此. python做数据分析,最常用以下几个库 numpy pandas matplotlib 一.Numpy库 为了 ...
- python安装numpy和pandas
最近要对一系列数据做同比比较,需要用到numpy和pandas来计算,不过使用python安装numpy和pandas因为linux环境没有外网遇到了很多问题就记下来了.首要条件,python版本必须 ...
随机推荐
- Java获取网络IP
Java获取获取网络IP,浅尝辄止咯- import java.net.InetAddress; import java.net.UnknownHostException; /** * 获取网络IP ...
- TaintDroid下载预编译(五):TaintDroid(Android)系统编译虚拟机和真机測试
光说不练非好汉,如今就让我们开启自己编译的系统測试!事实上懂得这些过程.就知道了Android手机系统定制的整个流程.现有的智能机都是使用Google的android开源的系统然后加入一些自己的东西. ...
- luasql在Fedora20下的安装与使用示例
主要参考:http://www.boll.me/archives/614 luasql安装, 在终端通过yum命令安装: yum -y install lua-sql 接下来写个测试的lua脚本文件( ...
- ThinkPHP之文件上传
在项目其中.我们有的时候需要上传图片的功能.简单的从面相过程的方法是相对较为复杂的,要一步一步的来.假设用框架的话,相对就简单了很多,主要就是方法以及每个变量所代表的意义,然后就是一些注意的地方了. ...
- 小技巧处理div内容溢出
前几天遇到一个问题,代码是这样一个层次: <div class="province"> <ul> <li>1</li& ...
- (转)Linux开启mysql远程连接的设置步骤
Mysql默认root用户只能本地访问,不能远程连接管理mysql数据库,Linux如何开启mysql远程连接?设置步骤如下: 1.GRANT命令创建远程连接mysql授权用户itlogger mys ...
- 双十二“MathType”限时6折特惠
MathType是由美国Design Science公司开发功能强大的公式编辑器,专门用来对数学公式的编辑,与常见的文字处理软件和演示程序配合使用,能够在各种文档中加入复杂的数学公式和符号.双十二期间 ...
- plsql developer中,清除登录历史
需求描述: 在使用plsql developer的时候,发现登录的时候,有太多的历史,想要把这些登录历史清除掉, 在此记录下. 操作过程: 1.登录plsql developer(或者在登录时取消也会 ...
- RMQ LAC 入门
RMQ RMQ (Range Minimum/Maximum Query)问题是指:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j<=n),返回数列A中下标在i,j里的最小(大) ...
- swift学习笔记之控制流
控制流: 1.if语句 let count = { print("yes") }else{ print("no") } 2.switch语句 (1)Swift中 ...