resize和reshape都可以改变ndarray的结构,但resize会对原值进行修改,返回None,而reshape不会对原值进行修改,返回是修改后结果。
importnumpy as np
arr= np.arange(15).reshape(3, 5)
arr
array([[ 0,1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]])
zeros
生成指定结构的默认为 0. 的 array
np.zeros ((3,4))
array([[ 0., 0., 0., 0.],
[ 0., 0., 0., 0.],
[ 0., 0., 0., 0.]])
ones
生成一个三维的 array,通过 dtype 指定类型
np.ones( (2,3,4), dtype=np.int32 )
array([[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]],
[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]]])
arange
指定范围和数值间的间隔生成 array,注意范围包左不包右
np.arange(0,10,2)
array([0,2, 4, 6, 8])
linespace 随机数
生成等差数列
>>> np.linspace(0,10) # 默认生成50个值
array([ 0. ,0.20408163, 0.40816327, 0.6122449 , 0.81632653,1.02040816, 1.2244898 , 1.42857143, 1.63265306, 1.83673469,2.04081633, 2.24489796, 2.44897959, 2.65306122, 2.85714286,3.06122449, 3.26530612, 3.46938776, 3.67346939, 3.87755102,4.08163265, 4.28571429, 4.48979592, 4.69387755, 4.89795918,5.10204082, 5.30612245, 5.51020408, 5.71428571, 5.91836735,6.12244898, 6.32653061, 6.53061224, 6.73469388, 6.93877551,7.14285714, 7.34693878, 7.55102041, 7.75510204, 7.95918367,8.16326531, 8.36734694, 8.57142857, 8.7755102 , 8.97959184,9.18367347, 9.3877551 , 9.59183673, 9.79591837, 10. ])>>> np.linspace(1,20,10,dtype=int) 可指定区间范围,个数,和类型
array([1, 3, 5, 7, 9, 11, 13, 15, 17, 20])
random 随机数
生成指定结构的随机数,可以用于生成随机权重,用法和Python的random模块基本一致
np.random.random((2,3))
array([[0.86166627, 0.37756207, 0.94265883],
[ 0.9768257 , 0.96915312, 0.33495431]])
>>> li = list(range(0,10))
>>>li
[0,1, 2, 3, 4, 5, 6, 7, 8, 9]>>>np.random.shuffle(li)>>>li
[5, 6, 8, 2, 1, 3, 9, 4, 0, 7]>>>np.ran