[Python] Numpy.array e tempi di accesso

Pietro Battiston ml a pietrobattiston.it
Ven 6 Nov 2015 00:07:04 CET


Il giorno mar, 03/11/2015 alle 19.20 +0100, Manlio Perillo ha scritto:
> 2015-11-03 19:16 GMT+01:00 Manlio Perillo <manlio.perillo a gmail.com>:
> > 2015-11-03 18:23 GMT+01:00 Manlio Perillo <manlio.perillo a gmail.com
> > >:
> > > 2015-11-03 18:19 GMT+01:00 Manlio Perillo <manlio.perillo a gmail.c
> > > om>:
> > > [...]
> > > > Tieni conto che con Python è ben possibile che ci siano altri
> > > > fattori
> > > > che "mascherano" le performance reali [1].
> > > > Magari l'indexing di un array numpy non accede direttamente
> > > > alla
> > > > memoria come accade in C.
> > > > 
> > > 
> > [...]
> > Però numpy ha ancora del codice addizionale in mezzo, perchè questa
> > versione
> > 
> > def afib(n):
> >     cache = [-1 for i in range(n+1)]
> >     cache[0] = cache[1] = 1
> >     return _fib(n, cache)
> > 
> > è più efficiente.
> > Dovrei leggere il codice, ma non ne ho voglia.
> > 
> 
> http://stackoverflow.com/questions/29281680/numpy-individual-element-
> access-slower-than-for-lists
> 

Wow, direi che ora ho la situazione decisamente più chiara.

> Python è *troppo* dinamico, e si propaga in modo virale a tutto.
> 

Beh, in effetti me l'ero anche andata a cercare...
È solo che ho sentito dire troppe volte che "le strutture Python sono
inefficienti" (rispetto es. a liste in C, ovviamente!), per cui ho
ingenuamente pensato che numpy sarebbe stato un guadagno, anche in un
caso in cui evidentemente non viene sfruttato per quelle che sono le
sue qualità.

Pietro


Maggiori informazioni sulla lista Python