认识Numpy Ndarray对象
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])
结果为: