如何在Python中将for循环的结果保存到向量?

时间:2017-02-15 10:04:54

标签: python python-3.x for-loop

我生成随机数,并轻松计算出它们的均值。但问题是,我怎样才能看到我生成的数字?我想将这些数字保存到矢量中。我怎么能这样做?

这是我的代码:

import random

print ("#n\tmean")

for n in (1,10,100):
        sum = 0
        mean = 0

        for i in range(n):
                sum += random.random()
                mean = sum / n

        print ("%d\t%g\t" % (n, mean))

提前谢谢!

6 个答案:

答案 0 :(得分:5)

使用list comprehensions

import random

n = 100
l = [random.random() for _ in range(n)]
mean = sum(l)/100

答案 1 :(得分:4)

使用列表保存所有结果:

results = []
for i in range(n):
sum += random.random()
mean = sum / n
results.append(mean)

然后通过以下方式获取输出数组:

np.hstack(results)

答案 2 :(得分:3)

我认为你需要这样的东西,如果你想避免numpy。

import random

print ("#n\tmean")
meansList = []
for n in (1,10,100):
        sum = 0
        mean = 0

        for i in range(n):
                sum += random.random()
                mean = sum / n

        meansList.append(mean)
print meansList

答案 3 :(得分:1)

使用numpy包

import numpy as np 

my_numbers = np.random.uniform(0, 1, 100)
print np.mean(my_numbers)

答案 4 :(得分:1)

尝试python的内置数据结构列表,我认为它接近一个向量并且适合你。

vector = list()

//in the for loop

    r = random.random()  
    vector.append(r)

另请注意,列表可以附加列表,因为您有两个for循环。例如,您可以执行类似

的操作
outer_vector.append(inner_vector)

答案 5 :(得分:1)

您可以使用列表解析在一行中生成1,10,100的随机平均值:

import random

result = [(n,sum(random.random() for _ in range(n))/n) for n in (1,10,100)]


print(result)

一个可能的输出:

[(1, 0.1269484085194036), (10, 0.6572300932440089), (100, 0.4796109974064649)]

random.random() for _ in range(n)是生成器理解,它提供sum,除以n以获得均值,包裹在外部循环中并创建具有值/均值的元组