文章目录
在机器学习和深度学习中,经常需要产生一些数据来使用,这时会经常使用numpy的随机函数,由于随机函数random的功能比较多,经常会混淆或记不住,下面我们一起来汇总学习下。
1 np.linspace
numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
在指定[start, stop]的间隔内返回num个均匀间隔的数组。stop是否被包含在数组里,使用endpoint=True 或 endpoint=False来决定;retstep是return step缩写,指定为True时会返回步长;dtype可以指定或者不指定,不指定情况下,系统自行推断。例子:
>>> import numpy as np
>>> a = np.linspace(1, 8, 8)
>>> a
Out[26]: array([1., 2., 3., 4., 5., 6., 7., 8.])
>>> a = np.linspace(1, 8, 8, endpoint=False)
>>> a
Out[28]: array([1. , 1.875, 2.75 , 3.625, 4.5 , 5.375, 6.25 , 7.125])
>>> a, step = np.linspace(1, 8, 8, endpoint=False, retstep=True)
>>> a
Out[30]: array([1. , 1.875, 2.75 , 3.625, 4.5 , 5.375, 6.25 , 7.125])
>>> step
Out[31]: 0.875
2 np.repeat
numpy.repeat(a, repeats, axis=None)
复制多维数组的每一个元素;axis来控制复制的轴,对于二维数组,就是行和列.
参数的意义:
axis=None,时候就会flatten当前矩阵,实际上就是变成了一个行向量
axis=0, 沿着第1轴复制,实际上增加了行数
axis=1, 沿着第2轴复制,实际上增加列数
repeats 可以为一个数,也可以为一个矩阵
例子:利用上述的np.linspace函数产生数据,并使用np.repeat复制
>>> import numpy as np
>>> angles = np.linspace(0, 2 * np.pi, 10, endpoint=False)
>>> angles
Out[33]:
array([0. , 0.62831853, 1.25663706, 1.88495559, 2.51327412,
3.14159265, 3.76991118, 4.39822972, 5.02654825, 5.65486678])
>>> b = angles[..., np.newaxis] # 也可以使用np.reshape(10,1)
>>> c = np.repeat(b, 2, axis=1) # 沿着第2轴复制2个
>>> c
Out[49]:
array([[0. , 0. ],
[0.62831853, 0.62831853],
[1.25663706, 1.25663706],
[1.88495559, 1.88495559],
[2.51327412