我有一个需要在数组中随机分配值的问题,但是我需要在外部声明a1,a2和a3,因为a1,a2和a3必须等于100。但是当我这样做时,就不能被随机化..循环保持执行相同的random值。
a3=random.randint(0,1)
a2=random.randint(0,50)
a1=100-a2-a3
random_array = np.array([np.array([ a2, a1, a3]) for _ in range(x)])
这是我得到的结果:
[ 6 94 0]
[ 6 94 0]
[ 6 94 0]
[ 6 94 0]
[ 6 94 0]
[ 6 94 0]
[ 6 94 0]
[ 6 94 0]
[ 6 94 0]
答案 0 :(得分:0)
如果您想每次都获得不同的随机值,则需要在循环内调用randint
。
random_array = []
for _ in range(x):
a3=random.randint(0,1)
a2=random.randint(0,50)
a1=100-a2-a3
random_array.append([a2, a1, a3])
答案 1 :(得分:0)
就像hpaulj的评论一样,Numpy的随机函数可以返回numpy数组。这样可以消除任何显式循环的需要。
count(a.ds_confirmacao)
如果要数组数组:
import numpy as np
n=10
a3 = np.random.randint(0,2, n) # The upper limit is exclusive so randint(0,1) is always 0
a2 = np.random.randint(0,50, n)
a1 = 100-a2-a3
a1
# array([77, 72, 81, 57, 84, 60, 97, 54, 52, 86])
a2
# array([23, 27, 19, 42, 16, 39, 2, 45, 48, 14])
a3
# array([0, 1, 0, 1, 0, 1, 1, 1, 0, 0])