取指定索引的列 numpy numpy 获取索引_numpy二维数组改变某些数


之前与大家分享了python基础语法和利用pandas进行数据处理,有需要的小伙伴可点击下方链接回顾~


一只小猴:16个语法打牢python基础zhuanlan.zhihu.com

取指定索引的列 numpy numpy 获取索引_numpy二维数组改变某些数_02

一只小猴:如何使用python进行数据分析?zhuanlan.zhihu.com


取指定索引的列 numpy numpy 获取索引_数据_03


本文我们就来了解一下在数据处理时常用到的numpy和pandas到底是什么?该如何使用呢?

一、Numpy

numpy是以矩阵为基础的数学计算模块,提供高性能的矩阵运算,数组结构为ndarray

首先需要明确数组与列表的区别:数组是一种特殊变量,虽与列表相似,但列表可以存储任意类型的数据,数组只能存储一种类型的数据,同时,数组提供了许多方便统计计算的功能(如平均值mean、标准差std等)。

那么numpy有哪些功能呢?

首先在使用前要导入该模块(导入前要安装,方法自行搜索吧(*^-^*)),代码如下:


import


1. 通过原有列表转化为数组


取指定索引的列 numpy numpy 获取索引_数据_04


2. 直接生成数组

① 生成一维数组


取指定索引的列 numpy numpy 获取索引_numpy二维数组改变某些数_05


上图中由于生成一维数组时,没有给参数10 定义数据类型,所以数组元素的类型默认为float64。那定义数据类型为整型时会是什么结果呢?


取指定索引的列 numpy numpy 获取索引_数组_06


② 生成多维数组


取指定索引的列 numpy numpy 获取索引_取指定索引的列 numpy_07


zeros返回来一个给定形状和类型的用0填充的数组,同理,ones返回来一个给定形状和类型的用1填充的数组。但更多情况下我们想指定某个值,这时用np.full(shape, val)生成全为val的值,如下:


取指定索引的列 numpy numpy 获取索引_数据_08


3. 随机数取值

我们知道random库中可以通过random.randint(5,10)来随机生成一个5-10的数,如下:


取指定索引的列 numpy numpy 获取索引_数组_09


在numpy中也有一个类似的加强版的功能。


取指定索引的列 numpy numpy 获取索引_数据_10


4. 范围取值


取指定索引的列 numpy numpy 获取索引_numpy 索引多个_11


5. 访问数组中的元素


取指定索引的列 numpy numpy 获取索引_数组_12


取指定索引的列 numpy numpy 获取索引_numpy二维数组改变某些数_13


6. 基本数学运算

numpy在做运算时,是对数组中每个元素都进行运算。


取指定索引的列 numpy numpy 获取索引_数组_14


常用的运算符号及等价函数总结如下:


取指定索引的列 numpy numpy 获取索引_numpy二维数组改变某些数_15


取指定索引的列 numpy numpy 获取索引_数组_16


7. 数组变形


取指定索引的列 numpy numpy 获取索引_numpy 索引多个_17


数组变形时,数组总大小保持不变,如上图中我们定义了一个两行五列的数组,总大小为2*5=10,经变形后得到一行十列的数组,总大小仍为10,但我们无法变成3*4或6*9等类型。

8. 数组拼接


取指定索引的列 numpy numpy 获取索引_数组_18


9. 数组排序


取指定索引的列 numpy numpy 获取索引_numpy二维数组改变某些数_19


二、Pandas

pandas是基于numpy数组构建的,但二者最大的不同是pandas是专门为处理表格和混杂数据设计的,比较契合统计分析中的表结构,而numpy更适合处理统一的数值数组数据。pandas数组结构有一维Series二维DataFrame

使用前同样需要先导入该模块,代码如下:


import


1. Series

Series是一种类似于一维数组的对象,它由一组数据以及一组与之相关的数据标签(索引index)组成。


取指定索引的列 numpy numpy 获取索引_numpy二维数组改变某些数_20


Series的字符串表现形式为:索引在左边,值在右边。如果不为数据指定索引,则会默认创建一个0到n-1的整数型索引。


取指定索引的列 numpy numpy 获取索引_numpy 索引多个_21


① 通过原有字典转化为数组


取指定索引的列 numpy numpy 获取索引_numpy二维数组改变某些数_22


② 访问元素

与numpy相比,除了根据位置获取值外,还可以根据索引获取。


取指定索引的列 numpy numpy 获取索引_数据_23


③ 向量化运算


取指定索引的列 numpy numpy 获取索引_numpy二维数组改变某些数_24


上图运行结果可以看到出现了缺失值NaN(not a number),这是因为索引值b、c、d、e、f、g只出现在一个一维数组中。在数据分析过程中,我们通常不希望缺失值出现,那么如何解决呢?

一般常用的有两种方法:


取指定索引的列 numpy numpy 获取索引_numpy二维数组改变某些数_25


2. DataFrame

DataFrame是一个表格型的数据结构,其中的数据是以一个或多个二维块存放的,而不是列表、字典或别的一维数据结构。它含有一组有序的列,每列可以是不同的数据类型,它既有行索引,也有列索引。

① 将原有字典转化为DataFrame


取指定索引的列 numpy numpy 获取索引_取指定索引的列 numpy_26


② 访问元素


取指定索引的列 numpy numpy 获取索引_取指定索引的列 numpy_27


取指定索引的列 numpy numpy 获取索引_取指定索引的列 numpy_28


取指定索引的列 numpy numpy 获取索引_数据_29


③ 条件筛选


取指定索引的列 numpy numpy 获取索引_numpy二维数组改变某些数_30


取指定索引的列 numpy numpy 获取索引_数据_31


④ 排序


取指定索引的列 numpy numpy 获取索引_数组_32


⑤ 应用函数


取指定索引的列 numpy numpy 获取索引_数组_33


取指定索引的列 numpy numpy 获取索引_数组_34


其他常用函数举例如下:


# 取前五行


以上就是numpy与pandas的基础内容,如有遗漏或错误,欢迎评论区指正~~