Numpy & Pandas入门(系列之二)
背景和环境搭建 Numpy和Pandas是目前最为流行的数据分析工具之二,基于Python语言开发。Numpy偏向数值计算,Pandas偏向数据分析,底层也是基于Numpy数据结构。两者结合可以完成一系列令人眼花缭乱的数据分析任务,并在机器学习,统计分析,因果推断等领域得到广泛应用。 作为入门,首先需要搭建开发环境。这里建议直接采用miniconda+VS Code的方式搭建,简单高效,步骤如下: 打开miniconda,找到适合自己操作系统的安装包,安装miniconda 国内环境推荐使用清华的conda和pip镜像,参考pypi镜像 和anaconda镜像 打开命令行,运行conda install pandas numpy 打开vscode官网,安装VS Code 打开VS Code,安装Python,Jupyter插件 在VS Code打开Command Palette (⇧⌘P) ,运行Jupyter: Create New Jupyter Notebook 命令 然后就能看到一个Jupyter Notebook,选择Python环境为刚才安装minicoda所在的位置 一个基本Python环境已经搭建好了, 之后就可以愉快的开发了,注意保存代码 在开发之前,需要先学习下narray,Series和Dataframe这几个基本的数据结构,搞懂这几个数据结构以及对应的计算模式,开发代码就会更加高效和方便。 所有的运算就基于这三个数据结构来做运算,计算过程类似矩阵或者集合的运算。编程的范式和传统的过程式编程有区别,不再是线性的执行顺序,而是集合和集合之间的关系运算。 例如,我们经常写foreach循环遍历数组中每一个元素进行运算,但用numpy就不需要,因为它直接提供了各种数组间运算的函数。再比如我们想将数据按照维度的聚合计算,对于pandas而言直接调用groupby函数即可。 下面分别介绍这三种基础数据结构。 narray narray是numpy的基础数据结构,它本质上是有一个多维数组,1维的就是一个数组array或者向量vector,2维是一个矩阵matrix,3维甚至更高维就是一个张量tensor。所以这个“n”代表维度,narray全称也就是“N-dimensional array”。 一个narray如下所示,一个维度称为一个axis。下面这个narray有两个axes,第一个axis长度为2,第二个axis长度为3。 >>> import numpy as np >>> a = np.array([[1, 2, 3, 4], [5, 6, 7, 8]]) >>> a [[1, 2, 3, 4], [5, 6, 7, 8]] 需要时刻记住,narray对应的是一个多维数组,如下图所示: numpy提供了一系列方便创建narray的函数,如下所示: >>> np.zeros(2) array([0., 0.]) # 0数组 >>> np.ones(2) array([1., 1.]) # 1数字 >>> np.empty(2) array([ 3.14, 42. ]) # 随机值 >>> np.arange(4) array([0, 1, 2, 3]) # 等差序列 >>> np.arange(2, 9, 2) array([2, 4, 6, 8]) #等差序列 >>> np.linspace(0, 10, num=5) array([ 0. , 2.5, 5. , 7.5, 10. ]) #线性区间 >>> np.ones(2, dtype=np.int64) array([1, 1]) #将默认数据类型从float64改为int64 narray的切片选取方法有: ...