第一章 Numpy基础

基于PyTorch的python深度学习

第一章 Numpy基础

Numpy(Numerical Python)提供了两种基本的对象:ndarray(N-dimensional Array Object)和ufunc(Universal Function Object)。ndarry是存储单一数据类型的多维数组,而ufunc则是能够对数组进行处理的函数。
Numpy的主要特点:
1、ndarray,快速节省空间的多维数组,提供数组化的算术能力和高级的传播功能
2、使用标准数学函数对整个数组的数据进行快速运算,且不需要编写循环
3、读取/写入磁盘上的阵列数据和操作存储器映像文件的工具
4、线性代数、随机数生成和傅里叶变换的能力
5、集成C、C++、Fortran代码的工具

1.1 生成Numpy数组

导入numpy后可通过np.+Tab键,在终端中查看可使用的函数。

1.1.1 从已有数据中创建数组

直接对python的基础数据类型(如列表、元组等)进行转换来生成ndarray:

# 从已有数据中创建数组
list1 = [3.14, 2.17, 3.5, 0.1]
nd1 = np.array(list1)
list2 = [[1, 2, 3.4, 4.6], [3.4, 34.4, 1.23, 3.8]]  # 嵌套列表转为多维数组,
nd2 = np.array(list2)
1.1.2 利用random模块生成数组

np.random模块常用函数

# 生成0到 1之间的随机数,括号里填你要生成随机数的尺寸
nd3 = np.random.random([3, 3])
print(nd3)
# 生成均匀分布的随机数
nd4 = np.random.uniform(0, 1, [3, 3])
print(nd4)
# 设置随机数种子
np.random.seed(1)
# 生成标准正态分布的随机数
nd5 = np.random.randn(2, 3)
# 当再次遇到随机数种子时,随机数是相同的
np.random.seed(1)
nd6 = np.random.randn(2, 3)
print(nd6)

有时还需要把生成的数据暂时保存起来,以备后续适用,这就需要适用save函数、

# 利用savetxt保存生成的数据
nd11 = np.random.random([4, 4])
np.savetxt(X=nd11, fname="./test1.txt")
# 利用loadtxt使用保存的数据
nd12 = np.loadtxt("./test1.txt")
print(nd12)
1.1.3 创建特定形状的多维数组

参数初始化时,有时需要生成特殊矩阵,如全是0或1的数组或矩阵,这时我们就要利用下面函数来创建
Numpy数组创建函数

# 生成全是0的3x3的数组
nd7 = np.zeros([3, 3])
print("nd7的值是:\n", nd7)
# 生成全是1的3x3的数组
nd8 = np.ones([3, 3])
print("nd8的值是:\n", nd8)
# 生成3阶的单位矩阵
nd9 = np.eye(3)
print("nd9的值是:\n", nd9)
# 生成3阶的对角矩阵
nd10 = np.diag([1, 2, 3])
print("nd10的值是:\n", nd10)
1.1.4 利用arange、linspace函数生成数组

arange函数的描述

# 当参数为一个时,参数为终止点,开始默认为0,步长默认为1
# 不包含终点
nd13 = np.arange(10)
nd14 = np.arange(1, 10)
nd15 = np.arange(1, 10, 0.5)
nd16 = np.arange(10, 0, -1)
print("nd13的值是:\n", nd13)
print("nd14的值是:\n", nd14)
print("nd15的值是:\n", nd15)

linspace参数说明
linspace 可以根据输入的指定数据范围以及等份数量,自动生成一个线性等分向量,其中endpoint(包含终点)默认为True,等分数量默认为50

# linspaace 可以根据输入的指定数据范围以及等份数量,自动生成一个线性等分向量。
# linsoace 是包含终点的
nd17 = np.linspace(0, 10, 10)
print(nd17)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值