[英]How to create a random Matrix in Python without duplicating integers?
我目前创建随机矩阵的解决方案是
matrix = np.random.randint(low=n, high=m, size=(x,y))
您知道不使用 integer 两次的解决方案吗? 谢谢
你可以使用np.random.choice 。
np.random.choice(5, 3, replace=False)
# Output:
array([3,1,0]) # random
如果您不想使用随机选择,您可以随时从整数列表中随机弹出。
import numpy as np
# define values
n = 0
m = 20
x = 3
y = 4
integer_list = [i for i in range(n, m)] # assuming m is exclusive
matrix = np.zeros((x,y))
for i in range(x):
for j in range(y):
matrix[i][j] = integer_list.pop(np.random.randint(0, len(integer_list)))
编辑:我无法让它与随机选择一起工作。 当我使用随机选择时,它返回单个值,而不是值列表。 更有效的解决方案是简单地打乱列表。
import numpy as np
import random
# define values
n = 0
m = 20
x = 3
y = 4
integer_list = [i for i in range(n, m)] # assuming m is exclusive
random.shuffle(integer_list)
matrix = np.zeros((x,y))
for i in range(x):
for j in range(y):
matrix[i][j] = integer_list.pop()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.