Python中Numpy介绍及常用函数
Numpy是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库
NumPy 是一个运行速度非常快的数学库,主要用于数组计算,包含线性代数、傅里叶变换、随机数生成等功能
NumPy 通常与 SciPy(Scientific Python)和 Matplotlib(绘图库)一起使用, 这种组合广泛用于替代 MatLab,是一个强大的科学计算环境,有助于我们通过 Python 学习数据科学或者机器学习
参考:
Python 算法库和数学工具包
SciPy 包含的模块有最优化、线性代数、积分、插值、特殊函数、快速傅里叶变换、信号处理和图像处理、常微分方程求解和其他科学与工程中常用的计算。
Matplotlib 是 Python 编程语言及其数值数学扩展包 NumPy 的可视化操作界面。它为利用通用的图形用户界面工具包,如 Tkinter, wxPython, Qt 或 GTK+ 向应用程序嵌入式绘图提供了应用程序接口(API)。
python complex类型-复数类型
复数存放的是一对浮点数,一个表示实数部分,另一个表示虚数部分(跟随一个字母j)
z = 1 + 1j;
print(z.real,z.imag)
=》结果:1.0 1.0
real是实数,image是虚数。
短阵和数组
Numpy矩阵严格是二维的,而numpy阵列(Ndarray)是N维的.矩阵对象是ndarray的子类,因此它们继承了ndarray的所有属性和方法。
numpy矩阵的主要优点是它们为矩阵乘法提供了一种方便的表示法:如果a和b是矩阵,那么a*b就是它们的矩阵乘积。
矩阵乘法
矩阵的乘法仅当第一个矩阵A
的列数和另一个矩阵B
的行数相等时才能定义
A是m
×n
矩阵和B
是n
×p
矩阵,它们的乘积C
是一个m
×p
矩阵
a的第一行每个元素与B中第一列的每个元素相乘求各做为结果的第一行第一列元素
a的第一行每个元素与B中第二列的每个元素相乘求各做为结果的第一行第二列元素
NumPy 数组的维数称为秩(rank),一维数组的秩为 1,二维数组的秩为 2
,每一个线性的数组称为是一个轴(axis),也就是维度(dimensions)。比如说,二维数组相当于是两个一维数组,其中第一个一维数组中每个元素又是一个一维数组。所以一维数组就是 NumPy 中的轴(axis)第一个轴相当于是底层数组,第二个轴是底层数组里的数组。而轴的数量——秩,就是数组的维数。
numpy常用函数
np.arange(24)
np.arange([start, ]stop, [step, ]dtype=None) //用于创建等差数组
a = np.arange(24)
print(a)
结果//[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]
np.sum([0.5, 1.5])
sum(a, axis=None, dtype=None, out=None, keepdims=np._NoValue)
a是要进行加法运算的向量/数组/矩阵
axis的值可以为None,也可以为整数 int32 和元组 (在默认/缺省的情况下,axis取None)
axis的取值有三种情况:1.None,2.整数, 3.整数元组
np.sum([0.5, 1.5]) //0.5+1.5=2
c=np.sum([0.5, 0.7, 0.2, 1.5], dtype=np.int32)
d=np.sum([0.5, 0.7, 0.2, 1.5])
print(c) //1==0+0+0+1 转化为整数
print(d) //0.5+0.7+0.2+1.5
c=np.sum([[1, 1], [100, 5]])
print(c)//107==1+1+100+5
c=np.sum([[1, 1], [100, 5]],axis=0) //[101 6] 则沿着纵轴进行操作
d=np.sum([[1, 1], [100, 5]],axis=1) //[ 2 105]沿着横轴进行操作
设axis=i ,则numpy沿着第i个下标变化的方向进行操作,
np.max
np.max:(a, axis=None, out=None, keepdims=False)
求最大值
c=np.max([-2, -1, 0, 1, 2,111])
print(c) //100