python kompilacja programu

Odpowiedz Nowy wątek
2014-12-10 08:27
0

Witam mam problem z programem, a mianowicie podczas kompilacji wyrzuca mi w linijce 16 taki o to błąd:

dane = np.fromstring(zawartosc_pliku, sep=' ').reshape((-1,2))
ValueError: total size of new array must be unchanged


#-*- coding: utf-8 -*-                                                         
import pylab as plt
from sys import argv, exit                                                     
import numpy as np
from scipy.stats import norm                                                   

if len(argv) == 'C:\Users\stiffler\Desktop\1.txt':
    print "python ", argv[0], '"nazwa_pliku_wejściowego"', "[N]"               

    exit(1)
plik = open('C:\Users\Devil\Desktop\dane.txt')                                                           
N=20
if len(argv) >= 3:
    N = int(argv[2])
zawartosc_pliku = plik.read()
dane = np.fromstring(zawartosc_pliku, sep=' ').reshape((-1,2))                 
tab = [] 
for i in dane:
    tab += i[1]*[i[0]]                                                         

mu, sigma = norm.fit(tab)                                                      

n, bins, patches = plt.hist(tab,N, normed=0)                                   

x = np.linspace(min(bins),max(bins),1000)                                      
y = plt.normpdf(x, mu, sigma)*600
l = plt.plot(x, y, 'r--', linewidth=2)                                   
plt.xlabel('ilosc zliczen/min')                                                      
plt.ylabel('ilosc trafien')
plt.title(r'$\mathrm{Histogram:}\ \mu=%.3f,\ \sigma=%.3f$' %(mu, sigma))       

plt.show()

pomoże ktoś?

btw programy w Pythonie nie są kompilowane, tylko interpretowane ;) - Wizzie 2014-12-10 16:35

Pozostało 580 znaków

2014-12-10 10:53
0

Masz na myśli "podczas uruchomienia"?

Stawiam na to że wczytujesz zakres danych który nie pasuje do podanej struktury.

Spróbuj najpierw skowertować ze stringa, wyświetlić i zobacz co dostajesz.
Powinna być wielokrotność 2.

http://docs.scipy.org/doc/num[...]/generated/numpy.reshape.html


Szacuje się, że w Polsce brakuje 50 tys. programistów

Pozostało 580 znaków

2014-12-10 11:03
0

tak.

u mnie dane są w formie 2 kolumn
np:

10 1 gdzie 1 to liczba powtórzeń 10 itd ... w sensie ile razy wystapiło 10 podczas eksperymentu
11 1
13 1
14 6
15 5
16 5
17 5
18 5

program wczytuje dane i na ich podstawie rysuje krzywa gaussa dzwonowa i na to naklada(rysuje na wykresie) rozklad normalny.

edytowany 1x, ostatnio: stiffler1989, 2014-12-10 11:05

Pozostało 580 znaków

2014-12-10 11:29
1

Jeszcze raz: wyświetl te dane po wczytaniu (jako liczby). Być może nie do końca się wczytują.


Szacuje się, że w Polsce brakuje 50 tys. programistów

Pozostało 580 znaków

2014-12-10 11:35
0

wszystko chodzi. Mój błąd, do pliku wkradły się niepożadane znaki typu [email protected] itp i wywalało przez to błąd.

jednak nie wszystko chodzi dobrze a mianowicie wyniki na osi "Y" są błędne tzn żadna z moich wartości ( ilosc trafien ) nie jest tak duza jak na wykresie.

u mnie wynosi 16 maxymalna ilosc trafien a tutaj okolo 26-27. jak to naprawic?

albo chociaż żeby na oś Y była podpisana od 0.00 , 0.01 , 0.02 , 0.03

  • 1.png (0,02 MB) - ściągnięć: 85
edytowany 3x, ostatnio: stiffler1989, 2014-12-10 13:32

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0