Numpy —— 科学计算基础库
本文最后更新于:2020年9月21日 晚上
概览:Numpy的使用。
Numpy与ndarray
NumPy(Numerical Python) 是 Python 语言中做科学计算的基础库。重在于数值计算,也是大部分Python科学计算库的基础,多用于在大型、多维数组上执行的数值运算。
NumPy 是 N 维数组对象 ndarray,它是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引。
- ndarray 对象是用于存放同类型元素的多维数组。
- ndarray 中的每个元素在内存中都有相同存储大小的区域。
- ndarray 内部由以下内容组成:
- 一个指向数据(内存或内存映射文件中的一块数据)的指针
- 数据类型或 dtype,描述在数组中的固定大小值的格子。
- 一个表示数组形状(shape)的元组,表示各维度大小的元组。
- 一个跨度元组(stride),其中的整数指的是为了前进到当前维度下一个元素需要”跨过”的字节数。
numpy与python列表的区别
- numpy数组中只能存放相同类型的数组元素。
- 并且数据类型优先级:
str>float>int
- eg:一维数组中只要有一个浮点数,所有的数都将是浮点数。
numpy创建
1 |
|
使用np.array()创建
1
2arr = np.array([1,2,3,4,5]) # 一维数组
arr2 = np.array([[1,2,3],[4,5,6]]) # 二维数组使用matplotlib将外部图片的数据加载入np数组
1
2import matplotlib.pyplot as plt
img_arr = plt.imread('./bobo.jpg')使用linespace、random等随机生成
1
2
3np.linspace(0,20,num=10) #返回一个一维形式的等差数列,10个数字
np.arange(0,10,step=2) #返回也是一个等差数列 array([0, 2, 4, 6, 8])
np.random.randint(0,100,size=(3,4)) #返回一个三行四列二维数组,数组元素是从0-100随机选取numpy常用属性
- shape:数组的形状,二维就是(m,n)
- ndim:数组维度
- size:数组元素个数
- dtype:数组元素的数据类型,上面提到numpy数组只能存放同一类型的数据。
numpy数据类型
array(dtype=?):创建时可以设定数据类型
arr.dtype = ‘?’:之后可以修改数据类型
reshape变形
可以将x维度的数组变换成y维度的数组,但是变形前和变形后数组的容量不可以发生变化。
arr.reshape((2,15))
#两行15列的二维数组arr.reshape((3,-1))
#-1表示自行计算,保证3行n列的数组arr.reshape((30,))
注意逗号后面没有数字,会变形成为一个一维数组。
concatenate级联
将多个numpy数组进行横向或者纵向的拼接。
1 |
|
- axis表示轴向,0为列,1为行。
- 维度不一致,一定不可以级联,但是维度一致,行列不一致也可以适当级联。
索引与切片
1 |
|
聚合操作、数学函数、统计函数
- sum(axis=0):按列求和
- max(axis=0)
- min(axis=0)
- mean(axis=0):均值
1 |
|
- sin()、cos()、tan()
numpy.around(a,decimals)
函数返回指定数字的四舍五入值。- a:np数组
- decimals: 舍入的小数位数。 默认值为0。 如果为负,整数将四舍五入到小数点左侧的位置。
1 |
|
- numpy.amin() 和 numpy.amax(),用于计算数组中的元素沿指定轴的最小、最大值。
- numpy.ptp():计算数组中元素最大值与最小值的差(最大值 - 最小值)。
- numpy.median() 函数用于计算数组 a 中元素的中位数(中值),计算不能有空值。
- 标准差std():标准差是一组数据平均值分散程度的一种度量。
公式:std = sqrt(mean((x - x.mean())**2))
如果数组是 [1,2,3,4],则其平均值为 2.5。 因此,差的平方是 [2.25,0.25,0.25,2.25],并且其平均值的平方根除以 4,即 sqrt(5/4) ,结果为 1.1180339887498949。 - 方差var():统计中的方差(样本方差)是每个样本值与全体样本值的平均数之差的平方值的平均数,即 mean((x - x.mean())** 2)。换句话说,标准差是方差的平方根。
1 |
|
矩阵相关
NumPy 中包含了一个矩阵库 numpy.matlib,该模块中的函数返回的是一个矩阵,而不是 ndarray 对象。一个 的矩阵是一个由行(row)列(column)元素排列成的矩形阵列。
numpy.matlib.identity()
函数返回给定大小的单位矩阵。单位矩阵是个方阵,从左上角到右下角的对角线(称为主对角线)上的元素均为 1,除此以外全都为 0。
- 矩阵转置:
arr.T
- 矩阵相乘:
numpy.dot(a, b, out=None)
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!