python深度学习:Numpy
1、导入
import numpy as np2、生成数组,矩阵
x = np.array([1,2,3,4]) y = np.array([[1,2],[3,4],[5,6]])3、计算
np.log(x) np.exp(x) np.dot(A,B)#矩阵乘法4、生成数据
x = np.arange(0,6,0.1)#从0开始,到6,每步加0.1 y = np.zeros(n) #n为整数,生成n个元素的一维数列 z = np.zeros_like(x) #n为numpy矩阵,生成同大小的全为0的矩阵5、求和
s = np.sum(x)6、类型转换
z = True z = z.astype(np.int)7、保存数据
分开保存
import os import numpy if os.path.exists("/saves/params_W1.npy"): params["W1"] = np.load("/saves/params_W1.npy")#加载保存的数据 else: if os.path.exists("/saves/"): os.makedirs(save_dir)#创建地址 self.params["W1"] = weight_init_std * np.random.randn(input_size,hidden_size)#生成随机初始值 #保存 np.save(os.path.join(save_dir, "params_W1.npy"), net.params["W1"])8、矩阵的快速迭代
it = np.nditer(x, flags=['multi_index'], op_flags=['readwrite'])#高效迭代,以multi_index记录当前点的坐标 while not it.finished: idx = it.multi_index #……# it.iternext()9.快速操作
y = np.argmax(y,axis=1) #例:y为一个二维矩阵,通过np.argmax找到每一行中的最大值,返回表示最大值索引的一维数列 x_train = np.where(x_train > 127, 1.0, 0.0).astype(np.float32) #快速完成二值化 np.eye(4) #生成如下的矩阵 #[[1,0,0,0], # [0,1,0,0], # [0,0,1,0], # [0,0,0,1]]10、随机
batch_mask = np.random.choice(len(x_train), batch_size) #生成长度为batch_size的随机一维数组,取值为0~len(x_train)-1的随机整数 idx = np.random.permutation(len(x_train)) #生成长度为0~len(x_train)-1的随机一个错排 self.params["W1"] = weight_init_std * np.random.randn(input_size,hidden_size) #生成input_size*hidden_size的矩阵,取值符合正态分布