文章目录
开局首先一句话
import numpy as np
import torch
一、numpy在深度学习中的经典用法
1、生成numpy数组
- 直接转换
np.array(list1)
- random模块生成
np.random.random([3,3])
- 创建特定形状
np.zeros([3,3])
- arange/linspace模块生成
np.arange(1,4,0.5)
,只有一个数字的话为1-数字
2、获取元素
- 与python中类似,直接
nd11[3:6]
- random.choice函数可以从指定样本中随机抽取数据
3、Numpy的数学运算
- 对应相乘:
A*B/np.numtiply(a,b)
- 点乘运算:np.dot()
4、数组变形
4.1、更改数组形状
- reshape改变向量的维度(不改变向量本身)
import numpy as np
arr = np.arange(6).reshape(2,-1)
- resize改变向量的维度(修改向量本身)
np.arange(6).resize(2,-1)
- T转置
np.arrange(12).reshape(3,4).T
- revel展平
import numpy as np
arr = np.arange(6).reshape(2,-1)
print(arr)
print(arr.ravel('F'))#按列优先展平
print(arr.ravel())#按行优先展平
- flatten 将矩阵转成向量,卷积与全连接层之间进行
a = np.floor(10*np.random.random((3,4)))
print(a)
print(a.flatten())
- squeeze压缩掉含1的维度
arr.squeeze().shape
- transpose
arr2 = np.arange(24).reshape(2,3,4).transpose(1,2,0)
4.2、合并数组
- append在后面添加
np.append(a,b,axis=0)
0为行合并,1为列合并 - concatenate沿指定轴连接数组或者矩阵
np.concatenate((a,b),axis=0)
- stack沿指定轴堆叠数组或矩阵
np.stack((a,b),axis=0)
5、批量处理
import numpy as np
data_train = np.random.randn(10000,2,3)
print(data_train.shape)
np.random.shuffle(data_train)
batch_size = 100
for i in range(0,len(data_train),batch_size):
x_batch_sum = np.sum(data_train[i:i+batch_size])
print("第{}批次,该批次数据的和:{}".format(i,x_batch_sum))
6、通用函数
两种基本对象:ndarry和ufunc对象
- math与numpy:numpy.sin比math.sin快近10倍
- 循环与向量:向量要比循环快的多
7、广播机制
import numpy as np
A = np.arange<