numpy之random

numpy中生成数包random一直是零零散散的学习, 今天把它总结一下。

1、np.random.random

形式: np.random.random(size = None)
参数: 元组
返回: 随机的浮点数, 取值范围在[0.0, 1.0)
例子: 
	 (1)  a = np.random.random((3)) 
	  # out: array([0.0545747 , 0.50093581, 0.57498647]) 
	 (2)  b = np.random.random((3,3))
	  # out: array([[0.16153003, 0.72163052, 0.86108999],
					[0.65291863, 0.55810132, 0.01777369],
					[0.3709582 , 0.22252266, 0.11397417]])
     (3)  c = np.random.random((3,3,3))
      # out: array([[[0.13945927, 0.81501768, 0.91043514],
					[0.56122187, 0.95883546, 0.065974  ],
			        [0.11781605, 0.55744775, 0.99117641]],
			
			       [[0.24191295, 0.0766085 , 0.5428258 ],
			        [0.44609998, 0.59042516, 0.31834528],
			        [0.27978428, 0.33327061, 0.79181811]],
			
			       [[0.97261267, 0.3494408 , 0.78271321],
			        [0.87467415, 0.27351203, 0.79395073],
			        [0.97057028, 0.89426802, 0.03617155]]]) 

2、np.random.rand

形式: np.random.rand(d0, d1, d2, d3)
参数: 一组数
返回: 在[0.0, 1.0)的均匀分布中产生随机数
例子: 
	 (1)  a = np.random.rand(3)
	 out: array([0.34925011, 0.04942493, 0.63604686])
	 (2)  b = np.random.rand(3,3)
	 out: array([[0.95244384, 0.08020848, 0.77590428],
		       [0.17332507, 0.24254829, 0.29918879],
		       [0.19873337, 0.8039541 , 0.71606437]])
	 (3)  c = np.random.rand(3,3,3)
	 out: array([[[0.30964171, 0.41220446, 0.77982171],
		        [0.17235795, 0.48818626, 0.93518602],
		        [0.7896179 , 0.02006544, 0.78057434]],
		
		       [[0.19839106, 0.73894392, 0.72458269],
		        [0.15702953, 0.32781068, 0.08189235],
		        [0.67494542, 0.67760166, 0.46260282]],
		
		       [[0.28721688, 0.80557224, 0.55904512],
		        [0.98629126, 0.80167453, 0.38668166],
		        [0.57019517, 0.89752537, 0.81608304]]])

3、np.random.randn

形式: np.random.randn()
参数: 一组数
例子: 
	 (1)、a = np.random.randn()
	 out: -1.6422687533628717
	 (2)、b = np.random.randn(3)
	 out: array([ 0.59777123, -0.02373024, -0.05694757])
	 (3)、c = np.random.randn(3,3)
	 out: array([[ 0.62620532,  0.06260522,  0.41588502],
		       [-1.34978408,  0.65717225, -0.16113621],
		       [-0.93103595,  0.52501683,  1.02981087]])
     (4)、d = np.random.randn(3,3,3)
     out: array([[[-0.07859158, -0.64991183, -2.10707191],
		        [-1.03914743,  0.03100739, -1.18547585],
		        [ 0.76256781, -1.1521187 , -0.43370326]],
		
		       [[ 0.47123448,  1.59163619,  0.73155932],
		        [ 0.83834011,  1.05639766,  1.02991932],
		        [-0.30924295,  1.03110817, -0.33469471]],
		
		       [[-0.13857728,  0.74235556,  1.23569233],
		        [-0.83600565,  1.65780235,  1.21393524],
		        [ 0.53494231,  0.96468393, -1.6654567 ]]])
特例: np.radnom.randn 默认生成的是以均值为0、方差为1的标准正态分布, 如果想生成分布均值为2.0, 方差为6.25的数据, 则可以写成:
	 (5)、 e = 2.0 * np.random.randn(3,3) + 2.5
	 out: array([[-0.01351022,  3.00332147,  2.78806616],
		       [ 4.59592595,  0.27546523,  6.99324307],
		       [ 2.05290953,  3.13602207,  1.16469024]])

4、np.random.randint

形式: np.random.randint()
参数: 取值范围为[m, n),  如果取值处只有一个参数g, 则取值范围为[0,g) .另外一个参数为数组大小
例子:
	(1)、a = np.random.randint(3, 5)
	out: 4
	(2)、b = np.random.randint(0,5,size = (2,3))
	out: array([[0, 4, 2],
		       [0, 3, 0]]) # 数值取值范围为[0,5)

5、np.random.seed

形式: np.random.seed()
参数: 包含参数相同时, 其生成的值是一样的
例子: 
	(1)、for i in range(3):
				np.random.seed(4)
				per = np.random.rand(2,3)
				print(per)
		out: [[-0.31178367  0.72900392  0.21782079]
			[-0.8990918  -2.48678065  0.91325152]]
			[[-0.31178367  0.72900392  0.21782079]
			 [-0.8990918  -2.48678065  0.91325152]]

以上是我认为numpy中几个比较常用的生成随机数的方法,如有不对, 还望指教。

猜你喜欢

转载自blog.csdn.net/wangliu123789/article/details/86664853
今日推荐