Numpy 简介
import numpy as np
Numpy是应用 Python进行科学计算的基础库。它的功能包括多维数组、基本线性代数、基本统计计算、随机模拟等。 Numpy的核心功能是 ndarray 类,即多维数组。多维数组是线性代数中非常广泛的概念,如一维数组就是向量,二维数组是矩阵。在数组中,要求所有元素必须是同一类型,这是与列表与字典的区别之一一。针对数组,通过Numpy可以实现的基本操作包括数组的创建、数组切片、数组重组、数组运算等。01
数组的创建
常见的创建数组的方法之一:转换Python的列表、元组等数据结构为数组类型。下面实例给出了创建数组的常用命令。>>> import numpy as np # 载入Numpy库简写为"np">>> arr1 = np.array([1,2,3,4,5,6])>>> arr1array([1, 2, 3, 4, 5, 6])>>> type(arr1) # 查看数据类型numpy.ndarray>>> arr1.shape # 各个维度的数组长度(6,)>>> arr2 = np.array([[1,2,3],[4,5,6]])>>> arr2 array([[1, 2, 3], [4, 5, 6]])>>> arr2.shape(2, 3)
另外,还可以利用Numpy的内置函数来直接创建数组。
>>> arr3 = np.arange(0,1,0.1)>>> arr3array([ 0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9])# 创建一维长度为2,二维长度为3的元素全为0的数组>>> arr4 = np.zeros((2,3)) >>> arr4 array([[ 0., 0., 0.], [ 0., 0., 0.]])# 创建一维长度为2,二维长度为3的元素全为1的二维数组>>> arr5 = np.ones((2,3)) >>> arr5array([[ 1., 1., 1.], [ 1., 1., 1.]])# 创建一维长度为2,二维长度为3的二维空数组>>> arr6 = np.empty([2,3]) >>> arr6array([[ 1., 1., 1.], [ 1., 1., 1.]]) # 从[0,1]区间的均匀分布随机抽取四个数>>> arr7 = np.random.rand(4)>>> arr7array([ 0.36570416, 0.83097711, 0.98761922, 0.87057992])# 生成一个标准正态分布的4*4样本值>>> arr8 = np.random.normal(size=(4,4)) >>> arr8array([[-0.15990639, 0.7088309 , -0.20267733, 2.14992874], [ 0.05542048, -1.15103197, 0.21129526, 0.6212253 ], [-1.31547565, 1.4401065 , 0.6680733 , -0.60608497], [-1.03471769, 0.55338916, -0.05869825, 0.61610795]])
注意这里的 np.arange () 可以指定步长为(0,1)为小数,而Python内置函数 range 无此功能。另外, np.random 中包括多种概率分布的随机样本,是数据分析辅助的重点工具之一。
02
数组的切片与索引
数组的截取与 list 相同,可以通过 [] 来指定每个维度的索引。>>> import numpy as np>>> a = np.array([[1,2,3,4,5],[6,7,8,9,10]])>>> print(a)[[ 1 2 3 4 5] [ 6 7 8 9 10]]>>> print(a[0:1]) # 截取第一行[[1 2 3 4 5]]>>> print(a[1,2:5]) # 截取第二行,第三、四、五列[ 8 9 10]>>> print(a[1:]) # 截取第二行[[ 6