Pytorch深度学习笔记(03)--Numpy

目录

一、生成Numpy数组

工具

1、从已有数据中创建数组

2、利用 random 模块生成数组

3、创建特定形状的多维数组

4、利用 arange、linspace 函数生成数组

二、获取元素

1、指定索引标签

2、random.choice函数可以从指定的样本中进行随机抽取数据

三、NumPy的算术运算

1、对应元素相乘

2、点积运算

 四、数组变形

1、更改数组的形状

 2、合并数组

五、批量处理(mini-batch)

1、如何把大数据拆分成多个批次呢?可采用如下步骤:

2、range() 函数可创建一个整数列表,一般用在 for 循环中:

六、通用函数

 七、广播机制

1、数字与向量的乘法

2、进行运算的两个矩阵相应维度的大小要么相同,要么其中有一个为 1

3、(2,)与(2,1)的区别如下:

4、shape用法的详细举例


一、生成Numpy数组

工具

  1. np.+Tab:查看可使用的函数
  2. np.abs?:查看abs函数的详细信息

1、从已有数据中创建数组

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

(1)将列表或嵌套列表转换成 ndarray:np.array(list) 

(2)将元组或嵌套元组转换成多维 ndarray:np.array(tuple)

2、利用 random 模块生成数组

表1 np.random模块常用函数

示例:

为了每次生成同一份数据,可以指定一个随机种子,使用shuffle函数打乱生成的随机数:

import numpy as np

np.random.seed(123)   #123是一个标识,数字一样时,生成的随机数始终不变
nd4 = np.random.randn(2,3)   #随机生成2行3列标准正态的随机数
print(nd4)
np.random.shuffle(nd4)  #打乱顺序
print("随机打乱后数据:")
print(nd4)
print(type(nd4))   #输出nd4的形状

输出结果:

[[-1.0856306 0.99734545 0.2829785 ]
[-1.50629471 -0.57860025 1.65143654]]

随机打乱后数据:

[[-1.50629471 -0.57860025 1.65143654]
[-1.0856306 0.99734545 0.2829785 ]]

3、创建特定形状的多维数组

表2 NumPy 数组创建函数

 补充:

np.diag([1,2.3])   三阶对角矩阵,以1,2,3作为对角线上的元素,其余均为0

保存数据&下载数据:

import numpy as np

nd9 =np.random.random([5, 5])
np.savetxt(X=nd9, fname='./test1.txt')
nd10 = np.loadtxt('./test1.txt')
print(nd10)

4、利用 arange、linspace 函数生成数组

(1)arange的用法

arange([start,] stop[,step,], dtype=None)          #注意:[start,stop)左闭右开

其中start 与 stop 指定范围,start 默认为 0,步长 step 可为小数,默认为1

(2)linspace的用法

np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None

linspace可以根据输入的指定数据范围以及等份数量,自动生成一个线性等分向量,其中endpoint (包含终点)默认为 True,等分数量num默认为 50。如果将retstep设置为 True,则会返回一个带步长的 ndarray。

import numpy as np
 
print(np.linspace(0, 1, 10))
#[0.         0.11111111 0.22222222 0.33333333 0.44444444 0.55555556
# 0.66666667 0.77777778 0.88888889 1.        ]

因为 linspace 必定会包含数据起点和终点,那么步长则为(1-0) / 9 = 0.11111111

二、获取元素

1、指定索引标签

如图所示:左边为表达式,右边为表达式获取的元素。注意不同的边界,表示不同的表达式。

 注意: [   行   ,   列   ]  ,“ :”左闭右开

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值