Numpy介绍
NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。
NumPy为什么能够受到各个数据科学从业人员的青睐与追捧,其实很大程度上是因为NumPy在向量计算方面做了很多优化,接口也非常友好。而这些其实都是在围绕着NumPy的一个核心数据结构Ndarray。
Ndarray对象
Ndarray的全称是(N-Dimension Arrary),表明了一个ndarray对象就是一个N维数组。但要注意的是,ndarray是同质的。同质的意思就是说N维数组里的所有元素必须是属于同一种数据类型的。
Ndarray对象实例化
实例化ndarray对象的函数有很多种,但最为常用的函数是array,zeros,ones以及empty。
首先导入numpy:
import numpy as np
1.使用array函数实例化Ndarray对象
使用NumPy中的array函数将list中的值作为初始值,来实例化一个ndarray对象。
a = np.array([[2, 3, 4],[5, 6, 7]]) print(a)
结果为:

2.使用zeros,ones,empty函数实例化Ndarray对象
顾名思义,使用这些函数可以实例化一个全是0、1或者是为空的ndarray对象
import numpy as np a = np.zeros((3, 4)) b = np.ones((3, 4)) c = np.empty((3, 4)) print(a) print(b) print(c)
结果为:

Ndarray的操作
形状操作
使用reshape函数改变ndarray对象的形状
import numpy as np a = np.zeros((3, 4)) print(a) # 使用函数reshape将3行4列改成4行3列 a = a.reshape((4, 3)) print(a)
结果为:

算术操作
对ndarray进行加减乘除等操作
import numpy as np a = np.array([0, 1, 2, 3]) print(a) # a中的所有元素都加2 b = a + 2 print(b) # a中的所有元素都减2 c = a - 2 print(c) # a中的所有元素都乘以2 d = a * 2 print(d) # a中的所有元素都除以2 e = a / 2 print(e)
结果为:

切片
ndarray元素的索引从0开始。ndarray的切片方式与python的list的遍历方式也极为相似,掌握了诀窍之后就很简单。
举个例子,假设想要将下图中紫色部分切片出来,就需要确定行的范围和列的范围。由于紫色部分行的范围是0到2,所以切片时行的索引范围是0:3(索引范围是左闭右开);又由于紫色部分列的范围也是0到2,所以切片时列的索引范围也是0:3(索引范围是左闭右开)。最后把行和列的索引范围整合起来就是[0:3, 0:3](,左边是行的索引范围)。当然有时为了方便,0可以省略,也就是[:3, :3]。

代码如下:
import numpy as np a = np.array([[1,10,11,20,21],[2,9,12,19,22],[3,8,13,18,23],[4,7,14,17,24],[5,6,15,16,25]]) print(a) print(a[:3, :3])
结果为:
