想学AI?先来一碗numpy的纯干货吧!

一、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表示文本文件中使用的分隔符。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180728G17LFA00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券