NumPy是一个开源的Python科学计算基础库,还是 Scipy、Pandas 等数据处理或科学计算库的基础 ,它被用于用于科学计算,且在性能、存储方面都具有一定优势。
1】由预编译好的 C 代码快速执行计算,故比之Python,它的运算速度更快。
2】有更好的存储结构来提高计算效率。
知识体系
ndarray数据结构及其特征
像一套能处理数组的工具,能对NumPy数组中的元素逐个进行操作。
和 Python内置的math模块类似,它主要用于实现一些较为基础的数组运算,例如数学函数、三角函数等。
常见函数:
np.add()
np.subtract()
其他子模块包
包括随机数包、线性代数包,矩阵包等内容。
常见函数:
np.random.randint(low,high,shape)
import numpy as np
ndarray是一个多维数组对象
维度是一组数据的组织形式,一定程度上决定了一组数据的表达含义。
一般是由线性方式组织的数据构成
如 Python 中的列表,只能从列这一个角度去描述数据。
由多个一维数据构成,是一维数据的组合
如嵌套列表表示的表格,可以从行列两个维度描述。
由一维数据/二维数据在新维度上扩展形成
如再更多一层的列表嵌套。
更高维数据…
np.array(列表/元组…)
将Python中的列表、元组等数据类型作为参数传入到array方法中。
传几维的 Python 数据进 array() 方法中,就会生成几维的 ndarray 数组出来。
注意:不同于 Python ,ndarray 数组要求所有的元素类型相同,故传入的数据参数需要统一其内部元素的数据类型。
元素的数据类型
单个数组中的数据是同质的,即所有元素的数据类型是相同的
例:
print(array_3.dtype)
轴( axis) :保存数据的维度,会用从0开始的数字表示,一维数组轴有axis=0,二维数组轴有axis=0,axis=1…
秩( rank) :指轴的数量,或者维度的数量,一维数组秩为1,二维数组秩为2…
属性
shape 属性
——表示数组的形状,调用时返回一个元组作为结果
array_2.shape
当返回结果为(4,3)时候,表示这是一个 4 行 3 列的数组,其中不同的轴即代表这个元组的索引下标。axis = 0 方向对应返回的数组长度是 4,axis = 1 对应返回的数组长度是 3,对应关系是从最外层依次往里。
ndim 属性
——表示数组的轴/维度的数量,调用时返回一个整数作为结果
array_2.ndim
当返回结果为2时候,代表数组的轴为2,有两个维度的数量。
size 属性
——表示数组的元素个数,调用时返回一个整数作为结果
array_2.size
索引
作用:获取数组中特定位置的元素。
一维数组的单个元素索引
语法:ndarray[索引值0]
用法:与列表的切片类似,SDndarray[1]
语法:ndarray[索引值0,索引值1…]
用法:每个维度上分别取一个索引值,用逗号分割
ndarray[1,1]
例:
查看数组中值为 2 的元素
array_1[1]
索引二维数组中第3行第2列的元素
array_2[2, 1]
用法:可直接选取一维度
语法:ndarray[起点索引值: 终点索引值: 步长]
注意:
冒号左边不填相当于等于填了 0,右边不填相当于取到索引值最大的元素
步长:用于插空取值,等于每个被取值的元素索引值之差,默认为 1
在目标数组上做逻辑运算,找出符合一定条件的元素,并以一维数组的形式返回。
语法:ndarray[布尔数组]
用法:通过一个布尔数组来索引目标数组,ndarray[booling]
例:
booling_1 = array_1 < 2
array_1[booling_1]
1】两个数组形状相同时,它们内部对应位置的元素将一一对应做加减乘除
2】两个形状不同数组间运算时,它们对应维度的元素数量必须相同,或者其中一方为1,才可以运算成功