我试图得到一个循环,告诉我从0到2(不包括2)的50个随机整数数组中的0的数量。然后,它将再次计算所获得的零的随机整数。
我尝试过这样做但是我在初级阶段陷入困境并且令人沮丧,所以任何帮助都会受到高度赞赏。
from numpy.random import randint
n = 50
R = randint(0,2,n)
for i in R:
True = 0
print array(True)
但是它没有返回一个阵列,我也不知道如何计算0的数量,因为我不能像往常那样使用len函数。
我尝试使用while循环但遇到了类似的问题
答案 0 :(得分:4)
由于你的数组只包含1和0,所以零的数量显然是
num_zeroes = len(R) - sum(R)
答案 1 :(得分:2)
要计算0
中的R
你可以做的事情
sum(not n for n in R)
这样做的好处是,即使数组中只有1
和0
以外的数字,它也能正常工作。
感谢eryksun指出这一点:你也可以做到
numpy.sum(R == 0)
答案 2 :(得分:0)
生成数组:
random_list = [random.randint(0,2) for x in xrange(50)]
0的数字:
num_zeros = sum( 1 for x in random_list if x==0 )
再次生成数组:
random_list = [random.randint(0,2) for x in xrange(num_zeros)]
答案 3 :(得分:0)
也许这是你正在寻找的东西:
from numpy.random import randint
n = 50
R = randint(0,2,n)
def get_number_of_zeros(x):
return sum(0 == ele for ele in x)
while(len(R) > 0):
number_of_zeros = get_number_of_zeros(R)
print 'number of zeros is {}'.format(number_of_zeros)
R = randint(0, 2, number_of_zeros)
结果:
number of zeros is 25
number of zeros is 11
number of zeros is 7
number of zeros is 4
number of zeros is 1
number of zeros is 1
number of zeros is 1
number of zeros is 0
答案 4 :(得分:0)
>>> R = [ 0, 1, 5, 0, 0]
>>> print("There are", R.count(0), "zeros")
There are 3 zeros