python数据分析及可视化(三)Numpy创建多维数组、修改数组维度、数组的切片、替换等基本操作

Numpy介绍

C语言是静态型语言,为了规范变量的内存空间,声明变量的时候会在前面增加数据类型。比如 int res = 0 ,不可以为 int res =1.5
Python是动态型语言,通过值来判断数据类型的。如 res = 3.1,res =‘3.1’。
python是动态类型语言,通过值来判断变量的类型。
大多数人存储数据的时候喜欢放到列表里,因为列表易于操作,不限制数据类型(如布尔型、浮点、整型、字符串、列表、字典等)。但是用列表进行计算的时候,不同类型的数据同时进行运算,运行的速度会变慢,列表与列表进行运算,速度比较慢。
在C语言中,开辟了整型的内存地址空间,在里面只能存储整型的数据,里面只有数据;而python的内存地址中,除了存放变量还存放数据对象头(pyobject_HEAD),里面会告诉所存放的数据类型。在列表中存放数据,L = [ 5,4,2,3],在存储的时候不只是存放了这几个数,还有一部分内存用来存储容器的头和长度等,定义了一个列表后可以通过len函数统计列表的长度,每一个元素的类型。列表可以存放任意类型的数据,对列表进行运算的时候就要考虑列表存放的数据类型是否一致,比如要对一个列表整体的除以2,但是列表中可以有整型,浮点型,布尔类型,字符串等,在运算的时候要先看数据类型,这样运算速度就比较慢。
这时候就引入了基于C语言创建的Numpy库,库中提供了Numpy数组对象,不用担心数组对象的类型,类型必须要保持一致,要么都是整型,要么都是浮点型,那么在做数组运算的时候就比较方便。比如全班同学的手机接口都相同,要充电的时候每个接口都可以用,如果每个人的接口都不一样,充电的时候就比较麻烦。
基于C语言创建的Numpy库,提供了数组对象,它中的数据类型必须要保持一致,都是整型或者浮点型,比如所有人的手机都相同,那么充电就比较方便,每一个接口都可以用。

安装numpy: pip install numpy

在这里插入图片描述

Numpy特点

Numpy(Numerical Python)是目前Python数值计算中最为重要的基础包。大多数计算包都提供了基于Numpy的科学函数功能,将Numpy的数组对象作为数据交换的通用语,以数组对象作为数据容器。
● 提供高效多维数组,C语言搭建的
● 提供了基于数组的便捷算术操作以及广播机制
● 对数据进行快速的矩阵计算
● 对硬盘中数组数据进行读写操作
在这里插入图片描述

Numpy的基础使用

创建数组

1.通过列表、元组、字符串以传参的形式创建数组(np.array(列表、元组、字符串)),数组中的数据类型必须一致,如有一个是浮点型,创建时所有的数据均为浮点型。
2.也可以直接创建数组,np.arange(),生成范围数组对象,跟range()用法相似。
3.通过numpy自带的方法创建。
在这里插入图片描述
在这里插入图片描述
可以用dtype指定输出的数组元素的数据类型
在这里插入图片描述
Numpy中数组元素的类型表
在这里插入图片描述
通过numpy自带的方法创建
在这里插入图片描述

创建多维数组

通过中括号的数量来判断是几维数组,array表示数组,ndarray表示多维数组。
在这里插入图片描述

数组属性

通过秩(ndim)、形状(shape,元组内有几个数就是几维)来判断数组是几维的,通过size查看数组中数据的个数。
在这里插入图片描述
在这里插入图片描述

数组维度转换

一维转为多维

通过reshape把一维转换为多维,reshape内的数(有几个数就是几维)相乘必须为数据的个数。
在这里插入图片描述

多维转为一维

1.通过reshape转换,要先知道数据的个数
2.通过flatten直接转换,不需要传入任何参数,改变数据不会影响原数组
3.通过ravel直接转换,不需要传入任何参数,改变数据会改变原来的数组
在这里插入图片描述
通过ravel直接转换,不需要传入任何参数,改变数据会改变原来的数组
在这里插入图片描述

数组操作

数组操作跟列表的相关操作类似
在这里插入图片描述
把数据看成矩形,通过坐标取值,0代表行,4代表列
在这里插入图片描述

切片

连续切片和不连续切片的取值
在这里插入图片描述

布尔索引

直接拿数值与数值中的数进行比较,把得到的结果作为索引进行取值。取反操作时,要注意对参与比较的数值本身的取值。
在这里插入图片描述
可以进行数据范围内取值,也可以批量修改数组中的数值,但要注意指定列表修改时,数据个数必须一一对应。where执行的时候类似if的操作,满足得到结果,否则就是另一个结果。
在这里插入图片描述

值的替换

可以用索引取值,然后进行赋值,也可以对一行或者对应的每一个数据一一对应进行重新赋值。
在这里插入图片描述

数组形状

reshape修改数组的维度,会有返回值,原数组不会发生变化;resize修改维度后没有返回值,会在原数组上直接改变。
在这里插入图片描述

练习题

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值