Tensori, matrici, vettori e python : media e somma – seconda parte
Bene poichè nella prima parte di questa serie di articoli abbiamo introdotto il concetto di tensore ed abbiamo anche inziato a capire il significato di dimensionalità rank e shape (forma), in questo articolo possiamo iniziare ad introdurre alcune tipiche operazioni che si possono fare sugli stessi. Prima di tutto, però, vorrei introdurre un semplice strumento matematico che ci aiuterà in seguito, ovvero, la sommatoria che si rappresenta con il la lettera greca sigma maiuscola . Questo strumento matematico è molto utile in quanto semplifica la formalizzazione e la rappresentazione di serie numeriche. Faccio un esempio, se volessi scrivere la somma di tutti i numeri da 1 a 100 potrei scrivere la sequenza:
S = 1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+ … +999+100
ma potrei usare la forma compatta e sicuramente più bella:
la cosa interessante è che se in python volessi fare la sommatoria S di una serie di numeri rappresentati in un vettore ad esempio
X = [1,2,3,4,5,6,7,8,9,10,10]
posso fare semplicemente:
>>> X=[1,2,3,4,5,6,7,8,9,10] >>> sum(X) 55 >>>
mentre se volessi fare la media di un vettore la cui rappresentazione compatta è ove sono gli elementi del vettore, in python sarà sufficiente eseguire:
>>> import numpy as np >>> X=np.array([1,2,3,4,5,6,7,8,9,10]) >>> np.mean(X) 5.5
potrei fare una cosa simile senza scomodare numpy ad esempio definendo una funzione che fa l’operazione di media
X=[1,2,3,4,5,6,7,8,9,10] def media(lista): return sum(lista)/len(lista) print(media(X))
Attenzione quando eseguite questa operazione in python2 troverete una bella sorpresa perchè per default la “/” restituisce l’arrotondamento ad intero e quindi vi restituirà 5. Valutate questi esempi per comprendere le differenze tra Python2 e Python3
Python 2.7.10 vs. Python 3.5
print(2/3) --> 0 #Python2.7 print(2/3) --> 0.666666666666 #Python 3.5
Python 2.7.10 vs. Python 3.5
print(4/2) --> 2 #Python2.7 print(4/2) --> 2.0 #Python 3.5
Now if you want to have (in python 2.7) same output as in python 3.5, you can do the following:
Python 2.7.10
from __future__ import division print(4/2) --> 2.0 #Python2.7 print(2/3) --> 0.666666666666 #Python 2.7
Sono amante della tecnologia e delle tante sfumature del mondo IT, ho partecipato, sin dai primi anni di università ad importanti progetti in ambito Internet proseguendo, negli anni, allo startup, sviluppo e direzione di diverse aziende; Nei primi anni di carriera ho lavorato come consulente nel mondo dell’IT italiano, partecipando attivamente a progetti nazionali ed internazionali per realtà quali Ericsson, Telecom, Tin.it, Accenture, Tiscali, CNR. Dal 2010 mi occupo di startup mediante una delle mie società techintouch S.r.l che grazie alla collaborazione con la Digital Magics SpA, di cui sono Partner la Campania, mi occupo di supportare ed accelerare aziende del territorio .
Attualmente ricopro le cariche di :
– CTO MareGroup
– CTO Innoida
– Co-CEO in Techintouch s.r.l.
– Board member in StepFund GP SA
Manager ed imprenditore dal 2000 sono stato,
CEO e founder di Eclettica S.r.l. , Società specializzata in sviluppo software e System Integration
Partner per la Campania di Digital Magics S.p.A.
CTO e co-founder di Nexsoft S.p.A, società specializzata nella Consulenza di Servizi in ambito Informatico e sviluppo di soluzioni di System Integration, CTO della ITsys S.r.l. Società specializzata nella gestione di sistemi IT per la quale ho partecipato attivamente alla fase di startup.
Sognatore da sempre, curioso di novità ed alla ricerca di “nuovi mondi da esplorare“.
Comments