一、numpy是什么?
numpy是一个python的第三方支持库,它提供了强大的N维数组数据结构,广播函数库,整合C/C++和Fortran代码的工具包,实用的矩阵矢量运算、傅立叶变换和随机数生成等函数以及精密计算库,它和pandas、matplotlib并称为数据分析和机器学习的三剑客,也是python如今这么火热的重要原因。
二、numpy的优势是什么?
1.并行化
例如python内置的list也可以表示多维数组,如果想要将数组中的每个元素都乘以2,就需要逐个迭代获取每个元素然后乘以2,而numpy则不需要,直接乘以2就OK,理解并行化的思想对学习numpy很重要。
2.效率极高
numpy底层实现使用了C语言的内存分配机制,并且解除了python的PIL(全局解释器锁),运算速度非常快,让你感觉不像是一个解释型的语言。
3.精密计算
我们都知道计算机无法精确表示浮点数,在很多需要严格处理数字的领域能够精密计算尤为重要,比如航空航天、金融等领域。
三、基本概念
1.一个numpy.ndarray数组内的所有元素都是相同类型,不能又有整数,又有字符串,它和C语言的数组极像,因为要分配连续内存,所以必须确定类型后才知道每个元素占多少位。
2.大小固定,当创建一个numpy.ndarray创建时就确定了其大小,不能像列表、字典一样再新增元素,ndarray的大小右两个参数决定,分别是数组的维数和元素的数量,数组的维被称为轴(axes),轴的数量被称为秩(rank),例如:
a数组的维数为2,简单来说就是第一层解开时的元素数量,一共两个元素[1,2,3]和[4,5,6],这就是维数,再解开一层的数量就时元素数量为3个。
3.并行操作是ndarray最基本性质:ndarray的操作作用于每一个元素,而普通列表作用于整个列表。
四、初始化操作
全
2.全1
3.根据一个已有数组的shape生成
4.对角线为1的单位矩阵
5.通过list生成
6.根据范围等距离生成
7.随机生成数据
标准正态分布
numpy.random中的函数
8.生成递增序列
9.一维数组按形状拆分
10.按shape (3,2,3)生成,填充随机值
五、索引及切片
普通列表的切片
普通列表的索引
ndarray的索引和切片原理和普通列表相同,不同之处在于ndarray就像洋葱一样包裹了很多层,它的索引可以接受很多层参数,参数从左到右指向了每一层的索引
六、数据类型及转换
一个ndarray中的元素必须是同一个类型
类型列表
类型转换方法
七、计算操作
算术运算
其他常用函数numpy.xxx
2.三角函数
普通三角函数
双曲型三角函数
反三角函数
3.矩阵运算
转置
在numpy中*是元素级乘法运算而不是矩阵的点积,矩阵点积使用dot函数。
在numpy.linalg中有专门针对矩阵计算的函数:
4.统计计算
5.条件判断数据筛选
6.其他函数或方法
八、数据序列化
np.save(‘./gen/filename’, ndarray)
使用save将数组ndarray序列化存储到本地文件中,得到filename.npy文件。
ndarray = np.load(‘./gen/filename.npy’)
加载本地文件中的序列化文件,记得跟npy后缀名
np.savez(‘./gen/zipfile.npz’, a=arr1, b=arr2)
将多个数组压缩保存至本地文件
arr = np.load(‘./gen/zipfile.npz’)
arr1 = arr[‘a’]
arr2 = arr[‘b’]
读取压缩文件,并将对象提取出来。
arr = np.loadtxt(‘filename.txt’, delimiter=’,’)
将文本文件中的内容加载到数组中,delimiter表示文本文件中使用的分隔符。
领取专属 10元无门槛券
私享最新 技术干货