前言
在机器学习或者深度学习中经常需要初始化一个矩阵,最常用的方法就是np.ones和np.zeros。但是在某些方面这两种方法都具有局限性,如果不想用全0或者全1初始化矩阵该怎么办?这就需要用到np.full这个方法,具体的方法应用见下面的案例演示:
方法
1、np.zeros函数跟np.ones函数用法类似相互类比即可:
用法:np.zeros(shape, dtype=float, order=‘C’)
返回:返回来一个给定形状和类型的用0填充的数组;
参数:shape:形状(可以为一个元组,或者数字两者有区别,元组返回的是一个矩阵数字返回的是一个一维数组)
dtype:数据类型:可选参数,默认numpy.float64
order:可选参数:c代表与c语言类似,行优先;F代表列优先(这个用法不是很理解)
案例
np.zeros(5)
array([ 0., 0., 0., 0., 0.])
np.zeros((5,), dtype=np.int)
array([0, 0, 0, 0, 0])
np.zeros((2, 1))
array([[ 0.],
[ 0.]])
s = (2,2)
np.zeros(s)
array([[ 0., 0.],
[ 0., 0.]])
np.zeros((2,), dtype=[('x', 'i4'), ('y', 'i4')]) # custom dtype
array([(0, 0), (0, 0)],
dtype=[('x', '<i4'), ('y', '<i4')])
2、np.full(shape, fill_value, dtype=None, order=‘C’)
返回一个指定形状、类型和数值的数组.
np.full((2,2),np.inf)
array([[ inf, inf],
[ inf, inf]])
np.full((2, 2), 10)
array([[10, 10],
[10, 10]])