赞
踩
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(Numerical Python)是目前Python数值计算中最为重要的基础包。大多数计算包都提供了基于Numpy的科学函数功能,将Numpy的数组对象作为数据交换的通用语,以数组对象作为数据容器。
● 提供高效多维数组,C语言搭建的
● 提供了基于数组的便捷算术操作以及广播机制
● 对数据进行快速的矩阵计算
● 对硬盘中数组数据进行读写操作
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修改维度后没有返回值,会在原数组上直接改变。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。