一、1、numpy中random方法的使用:(用来生成随机样本点)
1、numpy.random.rand(d0, d1, ....dn):
生成指定形状的数组,其元素值是在均匀分布[0, 1]之间随机生成,其中d0, ...dn表示的是数组的大小(也就是维数,只有一个数字时默认是一维的),如果不指定大小,默认返回一个随机数值。数组默认的返回类型是float.如果指定100,那么返回一个1*100的一维数组。
例如:
-
w0 = np.random.rand()
-
print w0, "\n"
-
-
w00 = np.random.rand( 2, 3)
-
print w00, "\n"
-
0.528211605811 #0-1之间的随机值
-
-
[[ 0.89478507 0.81066081 0.04658165] #0-1之间的随机值
-
[ 0.88438714 0.76890682 0.86752058]]
2、numpy.random.randn(d0, d1, ...dn):
从标准正态分布中返回一个随机样本。
<1>、无参数
-
w1 = np.random.randn()
-
print w1, "\n"
-0.755503212712
<2>指定返回样本的大小
-
w2 = np.random.randn(2, 3)
-
print w2, "\n"
-
[[ 0.34894362 -0.90593742 1.41079113]
-
[ -0.67110078 -0.21309708 1.01333301]]
样式:
sigma * numpy.random.randn(d0, ...,dn) + mu
-
sigma = 1.3
-
w3 = sigma * np.random.randn( 2, 3)
-
print w3
-
[[ 1.12659049 -2.13454097 -0.84336796]
-
[ -0.00758082 -0.52353856 0.9649422 ]]
array([6, 7, 7]) #为1*3的矩阵
np.random.randint(0,10,size=(3,3))
Out[351]:
array([[5, 1, 4],
[2, 8, 4], #为3*3的矩阵
[4, 2, 3]])5、x=['Python','data','random','Mining','good']
random.shuffle(x)
print (x)
# 用于将一个列表中的元素打乱,
['Mining', 'Python', 'random', 'data', 'good']
6、lists=[1,2,3,4,5,6,7,8,10] #从指定序列中随机获取指定长度的片断
a=random.sample(lists,3)
print (a)
[8, 6, 10]
二、numpy中使用linspace方法生成随机样本点
https://docs.scipy.org/doc/numpy/reference/generated/numpy.linspace.html
numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
Parameters(参数):
start : 序列的起始点.
stop : 序列的结束点
num : 生成的样本数,默认是50。必须是非负。
endpoint : 如果True,'stop'是最后一个样本。否则,它不包括在内。默认为True。
retstep : 如果True,返回 (`samples`, `step`)
dtype :
- 1
- 2
- 3
- 4
- 5
- 6
- 7
第1个例子endpoint的使用:
import numpy as np
print(np.linspace(2.0, 3.0, num=5))
print(np.linspace(2.0, 3.0, num=5, endpoint=True))
print(np.linspace(2.0, 3.0, num=5, endpoint=False))
- 1
- 2
- 3
- 4
输出:
[ 2. 2.25 2.5 2.75 3. ]
[ 2. 2.25 2.5 2.75 3. ]
[ 2. 2.2 2.4 2.6 2.8]
- 1
- 2
- 3
从上面输出可以看出endpoint=True时,输出包含了“stop”这个样本点;endpoint=False时,输出不包括“stop”这个样本点;默认情况endpoint=True。
第2个例子retstep的使用:
import numpy as np
print(np.linspace(2.0, 3.0, num=5))
a = np.linspace(2.0, 3.0, num=5, retstep=True)
print(a)
print(a[0])
print(a[1])
- 1
- 2
- 3
- 4
- 5
- 6
- 7
输出:
[ 2. 2.25 2.5 2.75 3. ]
(array([ 2. , 2.25, 2.5 , 2.75, 3. ]), 0.25)
[ 2. 2.25 2.5 2.75 3. ]
0.25
- 1
- 2
- 3
- 4
retstep=True时输出了步长(step),此时步长为0.25
第3个例子:
import numpy as np
import matplotlib.pyplot as plt
N = 8
y = np.zeros(N)
x1 = np.linspace(0, 10, N, endpoint=True)
x2 = np.linspace(0, 10, N, endpoint=False)
plt.plot(x1, y, 'o')
plt.plot(x2, y + 0.5, 'o')
plt.ylim([-0.5, 1])
plt.show()
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
输出: