numpy.floor()函数
np.floor()返回不大于输入参数的最大整数。(向下取整)
In [7]: n = np.random.randn(5) + 3
In [8]: n
Out[8]: array([ 3.09855111, 2.25077728, 2.24930416, 2.90145913, 3.57786296])
In [9]: np.floor(n)
Out[9]: array([ 3., 2., 2., 2., 3.])
numpy.random.seed()函数
设定了seed(),代表随机状态被初始化了。所以运行seed()方法后,再次运行随机数生成器,会得到相同的随机数。
注意只会生效一次,所以要实现随机数再次相同,需要在前面再次运行seed()方法。
In [56]: np.random.seed(0)
In [57]: np.random.rand(4)
Out[57]: array([ 0.5488135 , 0.71518937, 0.60276338, 0.54488318])
In [58]: np.random.seed(0)
In [59]: np.random.rand(4)
Out[59]: array([ 0.5488135 , 0.71518937, 0.60276338, 0.54488318])
numpy.random.permutation()函数
随机置换一个序列,并返回。
permutaion(x),当x是整数的时候,随机置换"np.arange(x)";当x是一个数列的时候,返回随机交换后的序列。
所以该函数可以用于产生随机交换的索引,从而打乱一个序列。
In [66]: np.random.permutation(6)
Out[66]: array([2, 3, 0, 4, 5, 1])
In [67]: x=np.random.randn(5)
In [68]: x
Out[68]: array([-1.27814912, 1.43737068, -0.07770457, 1.08963016, 0.09654267])
In [69]: np.random.permutation(x)
Out[69]: array([ 0.09654267, 1.43737068, -1.27814912, -0.07770457, 1.08963016])
mini-batch 使用
把一个大的训练集合划分为若干个小的训练集。
用到的参数:m:训练集大小;mini_batch_size:mini-batch的大小;ncm = np.floor(m/mini_batch_size)
划分方案:
使用循环实现如下的划分:
0*mini_batch_size:1*mini_batch_size
1*mini_batch_size:2*mini_batch_size
…
(ncm-1)*mini_batch_size:ncm*mini_batch_size
最后再加上剩余的:
ncm*mini_batch_size:m
numpy.reshape()函数
不改变数组的值,返回一个新形状的数组。函数参数reshape(a,newshape,order=‘C’);a是该数组。
newshape是整数或者由整数构成的元组。
注意:参数是-1时。reshpae函数会根据另一个参数的维度以及数组大小,计算出这个shape的维度属性。
In [70]: x=np.arange(12).reshape(3,4)
In [71]: x
Out[71]:
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
In [72]: np.arange(12).reshape(-1,4)
Out[72]:
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])