Answers:
文档字符串:rand(d0,d1,...,dn)
给定形状的随机值。
创建给定形状的数组,并使用上均匀分布的随机样本传播它
[0, 1)
。
>>> import numpy as np
>>> np.random.rand(2,3)
array([[ 0.22568268, 0.0053246 , 0.41282024],
[ 0.68824936, 0.68086462, 0.6854153 ]])
您可以删除range(len())
:
weights_h = [[random.random() for e in inputs[0]] for e in range(hiden_neurons)]
但实际上,您可能应该使用numpy。
In [9]: numpy.random.random((3, 3))
Out[9]:
array([[ 0.37052381, 0.03463207, 0.10669077],
[ 0.05862909, 0.8515325 , 0.79809676],
[ 0.43203632, 0.54633635, 0.09076408]])
numpy.random.random_integers(low, high, shape)
,例如numpy.random.random_integers(0, 100, (3, 3))
numpy.random.random
像其他许多numpy.random
方法一样,@ EmileVictor 接受形状,即N元组。因此,实际上外部括号代表调用方法numpy.random.random()
,而内部括号是用于实例化(3, 3)
传递给函数的元组的语法糖。
numpy.random.random_integers()
不推荐使用。使用numpy.random.randint()
代替。docs.scipy.org/doc/numpy/reference/generated/...
看起来您正在执行Coursera机器学习神经网络练习的Python实现。这是我为randInitializeWeights(L_in,L_out)做的
#get a random array of floats between 0 and 1 as Pavel mentioned
W = numpy.random.random((L_out, L_in +1))
#normalize so that it spans a range of twice epsilon
W = W * 2 * epsilon
#shift so that mean is at zero
W = W - epsilon
x = np.int_(np.random.rand(10) * 10)
对于10中的随机数,对于20中的随机数,我们必须乘以20。
当您说“随机数矩阵”时,您可以使用numpy作为上述的Pavel https://stackoverflow.com/a/15451997/6169225,在这种情况下,我假设与您无关的是,这些分布是什么(伪)坚持随机数。
但是,如果您需要特定的分布(我想您对统一分布很感兴趣),则numpy.random
有非常有用的方法为您服务。例如,假设您要一个3x2矩阵,其伪随机均匀分布以[low,high]为边界。您可以这样做:
numpy.random.uniform(low,high,(3,2))
注意,您可以用uniform
此库支持的任意数量的发行版代替。
进一步阅读:https : //docs.scipy.org/doc/numpy/reference/routines.random.html
为了创建随机数数组,NumPy使用以下方法创建数组:
实数
整数
使用随机实数创建数组: 有2个选项
随机兰德
import numpy as np
arr = np.random.rand(row_size, column_size)
随机兰德
import numpy as np
arr = np.random.randn(row_size, column_size)
使用随机整数创建数组:
import numpy as np
numpy.random.randint(low, high=None, size=None, dtype='l')
哪里
例如:
给定的示例将生成一个介于0和4之间的随机整数数组,其大小将为5 * 5,并具有25个整数
arr2 = np.random.randint(0,5,size = (5,5))
arr2 = np.random.randint(0,5,size =(5,5)),将乘法符号*更改为逗号,#
[[2 1 1 0 1] [3 2 1 4 3] [2 3 0 3 3] [1 3 1 0 0] [4 1 2 0 1]]
eg2:
给定的示例将生成一个介于0和1之间的随机整数数组,其大小将为1 * 10并具有10个整数
arr3= np.random.randint(2, size = 10)
[0 0 0 0 1 1 0 0 1 1]
random_matrix = [[random.random for j in range(collumns)] for i in range(rows)
for i in range(rows):
print random_matrix[i]
#this is a function for a square matrix so on the while loop rows does not have to be less than cols.
#you can make your own condition. But if you want your a square matrix, use this code.
import random
import numpy as np
def random_matrix(R, cols):
matrix = []
rows = 0
while rows < cols:
N = random.sample(R, cols)
matrix.append(N)
rows = rows + 1
return np.array(matrix)
print(random_matrix(range(10), 5))
#make sure you understand the function random.sample
numpy.random.rand(row,column)根据给定的指定(m,n)参数生成0到1之间的随机数。因此,使用它创建一个(m,n)矩阵,并将该矩阵乘以范围限制,然后将其与上限相加。
分析:如果生成零,则仅将保持下限,但是如果生成零,将仅保持上限。顺便说一句,使用rand numpy生成限制,您可以生成极端所需的数字。
import numpy as np
high = 10
low = 5
m,n = 2,2
a = (high - low)*np.random.rand(m,n) + low
输出:
a = array([[5.91580065, 8.1117106 ],
[6.30986984, 5.720437 ]])