基础库-Python常用模块的介绍和使用---numpy

注:Python的NumPy模块是一个非常强大的开源科学计算库,它在数据处理、科学计算、机器学习、图像处理等领域有着广泛的应用。

'''

numpy模块的数值计算等操作和torch模块非常相似

np.linalg子模块、np.fft子模块、np.random子模块

'''

主要作用是:多维数组对象的各种操作以及各种科学计算机制

1.提供多维数组对象

1.数组的创建:np.array(),创建数组或者将列表、元组或者其他数据类型转换为numpy数组

2.数组的形状变换:arr.reshape()、arr.T、arr.tolist()

3.数组的索引和切片

4.数组的各种操作:numpy.reshape();numpy.expand_dims();numpy.squeeze();

####数组创建和数组变换
import numpy as np
A = np.array([[1,2,3],[4,5,6]])
B = A.reshape(3,2)
C = A.T
D = A.tolist()

####数组切片
#一维数组切片
A1 = [1,2,3,4,5,6,7,8,9]
B1 = A1[0:1]  ##前闭后开
print(B1)
#多维数组切片
An= np.array([[1,2,3],[4,5,6]])
Bn = An[1:,0:1]
print(Bn)

2.支持广播机制

规则1:如果两个数组的维度不同,那么就在维度比较小的数组的第0维度补充维度1,直到维度相同

规则2:如果两个数组的形状在任何维度上都不匹配,但其中一个维度大小是1,那么扩展这个维度匹配另一个维度的大小

规则3:如果两个数组的形状在任何维度上都不匹配,而且没有维度大小为1,那么会引发广播错误

####情况1:
import numpy as np
arr1 = np.array([1, 2, 3])   # 形状为 (3,)
arr2 = np.array([[4], [5], [6]])  # 形状为 (3, 1)
# 通过广播机制,arr1 会被视为 (1, 3)(规则1),然后与 arr2 的 (3, 1) 进行广播,arr2会变成(3, 3)(规则2)
result = arr1 + arr2
# result = array([[ 5,  6,  7],
#                 [ 6,  7,  8],
#                 [ 7,  8,  9]])


####情况2:
arr1 = np.array([1, 2, 3])   # 形状为 (3,)
arr2 = np.array([[4, 5, 6]])  # 形状为 (1, 3)
# 通过广播机制,arr1 会被视为 (1, 3),然后与 arr2 的 (1, 3) 进行广播,得到 (1, 3)
result = arr1 + arr2
# result = array([[5, 7, 9]])

3.广泛的线性代数运算

1.矩阵运算:np.dot(A,B);np.matmul(A,B);np.vdot(复数);np.inner(内积);np.outer(外积)

2.矩阵求逆:np.linalg.inv(A)

3.矩阵分解:np.linalg.svd(A); w,v = np.linalg.eig(A)(特征值)(特征向量);w,v = np.linalg.eigh(A)(Hermitian矩阵)

4.解线性方程组:np.linalg.solve(A,b)

主要是np.linalg子模块

4.高效的数学函数库

大多数高效的数学函数库是在numpy主模块中

1.基本的数学运算:数组元素级别的加减乘除

2.统计函数:均值,中位数,方差等

3.排序和搜索:在np的主模块当中

4.三角函数

5.各种函数:三角函数,双曲函数,特殊函数

6.傅里叶变换:np.fft子模块

7.随机数生成:np.random子模块

        7.1:基本随机数:np.random.rand;np.random.randint;np.random.randn

        7.2:分布函数:numpy.random.normal(loc=0.0, scale=1.0, size=None) 均值,期望和形状

注意:在torch模块中,生成随机数是在torch主模块,torch模块不像numpy那样存在一个子模块random专门用于生成随机数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值