2017-02-15 4 views
2

Я создал случайные числа и легко вычислил их средства. Мой вопрос, однако, как я могу видеть числа, которые я сгенерировал? Я хотел бы сохранить эти числа в векторе. Как я могу это сделать?Как сохранить результаты цикла for в векторе в Python?

Это мой код:

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)) 

Спасибо заранее!

+3

Что такое "вектор"? Вы имеете в виду список? –

+0

Термин «вектор» не подходит для вашего контекста. Во всяком случае, вам кажется, что вам нужно хранить кучу значений в одной переменной. Для этого вы можете использовать список или массив numpy, если вы хотите выполнить с ними математические операции после этого – Jalo

ответ

4

Использование list comprehensions,

import random 

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

Это примерно как пифоническое, так как оно получает –

+0

Спасибо, это именно то, что я искал! Как я могу поместить весь этот код в цикл? Я имею в виду, если n = (10, 100, 1000, 10000), как я могу получить l (i) списки (где i = 1, ..., len (n))? –

1

Используйте NumPy пакет список структура данных

import numpy as np 

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

TRY питона встроенный, который я думаю, закрывается к вектору и будет работать для вас.

vector = list() 

//in the for loop 

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

Также обратите внимание, что списки могут добавлять списки, поскольку у вас есть два для циклов. Например, вы можете сделать что-то вроде

outer_vector.append(inner_vector) 
2

Я думаю, что нужно что-то вроде этого, если вы хотите, чтобы избежать 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 
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, чтобы получить среднее значение, обернутое во внешний цикл и создание кортежей со значением/средним значением

4

использовать список, чтобы сохранить все результаты:

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

затем получить выходной массив по:

np.hstack(results)