2017-09-07 2 views
0

Je travaille sur l'analyse statistique en python mais je suis nouveau sur le terrain et j'ai été bloqué sur une erreur. Pour l'arrière-plan, je calcule un ensemble de samples_means pour chaque taille d'échantillon, 200 fois. Je calcule ensuite la moyenne et l'écart-type pour chaque taille d'échantillon, qui sont ensuite stockés dans des tableaux. Ceci est mon code:Data science python error- ValueError: x et y doivent avoir la même première dimension

in[] = 
sample_sizes = np.arange(1,1001,1) 
number_of_samples = 200 
mean_of_sample_means = [] 
std_dev_of_sample_means = [] 
for x in range (number_of_samples): 
    mean_of_sample_means.append(np.mean(sample_sizes)) 
    std_dev_of_sample_means.append(np.std(sample_sizes)) 

in[] = # mean and std of 200 means from 200 replications, each of size 10 
trials[0], mean_of_sample_means[0], std_dev_of_sample_means[0] 

out[] = (10, 500.5, 288.67499025720952) 

Je suis maintenant en train de tracer les données avec l'entrée suivante:

plt.plot(sample_sizes, mean_of_sample_means); 
plt.ylim([0.480,0.520]); 
plt.xlabel("sample sizes") 
plt.ylabel("mean probability of heads") 
plt.title("Mean of sample means over 200 replications"); 

Cependant, quand je le fais, je suis jeté l'erreur suivante:

242   if x.shape[0] != y.shape[0]: 
243    raise ValueError("x and y must have same first dimension, but " 
--> 244        "have shapes {} and {}".format(x.shape, y.shape)) 
245   if x.ndim > 2 or y.ndim > 2: 
246    raise ValueError("x and y can be no greater than 2-D, but have " 

ValueError: x and y must have same first dimension, but have shapes (1000,) and (200,) 

Des pensées sur où je vais mal? Je me sens comme c'est probablement quelque chose d'évident que je ne vois pas que je suis nouveau à cela. Toute aide serait appréciée!!

+0

Salut, Pourriez-vous essayer modifier le code pour être le code réel que vous avez utilisé pour générer 'ValueError'? Y compris toutes les importations de modules, et les définitions de variables (par exemple, «essais» n'existe pas) – user3479780

+1

Je pensais la même chose mais je pense que l'OP copier et coller d'un cahier –

+0

Je pense que votre «mean_of sample_means» aura une entrée constante de 500.5 pour tous les 200 d'entre eux. Idem avec 'std_dev_of_sample_means', il aura 288.67499025720952 – kaza

Répondre

1

Cette ligne:

plt.plot(sample_sizes, mean_of_sample_means) 

besoin des deux arguments pour avoir la même forme (parce que vous avez besoin x et y pour votre parcelle de terrain sur certaines coordonnées cartésiennes système, pour être plus précis: la même taille en ce qui concerne la première dimension comme vu dans l'erreur: if x.shape[0] != y.shape[0]).

Mais:

sample_sizes = np.arange(1,1001,1) # 1000 ! 

et:

number_of_samples = 200 
mean_of_sample_means = [] 
for x in range (number_of_samples): 
    mean_of_sample_means.append(np.mean(sample_sizes)) # mean by default over flattened-structure 
                 # so i assume: 1 element per iteration 
# 200 ! 

Et comme prévu, l'erreur donne exactement cette info: ValueError: x and y must have same first dimension, but have shapes (1000,) and (200,)