Libreria
Scienza
Unità di misura, costanti fisiche, chimica, geometria e calcoli scientifici.
Funzioni 30
addestra_percettronearea_triangoloclassifica_vicinicombinazioniconverticorrelazionecosenoderivatadistanza_gpsintegraleinteresse_compostoipotenusalogaritmomassa_molaremedia_mobilemisure_poligononormalizzapercentilepiano_ammortamentoprobabilita_normalequartiliraggruppa_puntirata_mutuoregressione_linearerisolvi_equazionerisolvi_sistemasenotangentevalori_anomalivolume_solido
seno(angolo, radianti = falso)#
Il seno dell'angolo, in gradi come a scuola.
stampa(seno(30))stampa(seno(90))seno(PI_GRECO / 2, radianti = vero)0.5 1.0
radianti = verocoseno(angolo, radianti = falso)#
Il coseno dell'angolo, in gradi come a scuola.
stampa(coseno(60))stampa(coseno(180))0.5 -1.0
tangente(angolo, radianti = falso)#
La tangente dell'angolo (seno diviso coseno), in gradi.
Non esiste per 90 e 270 gradi.
stampa(tangente(45))1.0
logaritmo(x, base = 10)#
L'esponente a cui elevare la base per ottenere x.
stampa(logaritmo(1000))stampa(logaritmo(8, 2))stampa(logaritmo(1, "e"))3.0 3.0 0.0
base = "e"correlazione(x, y)#
Quanto due liste di numeri "vanno insieme", da -1 a 1.
1 vuol dire che crescono insieme in modo perfetto, -1 che quando una cresce l'altra cala, 0 che non c'è legame.
stampa(correlazione([1, 2, 3, 4], [2, 4, 5, 8]))correlazione([[1, 2], [2, 4], [3, 5]])0.981155781039
regressione_lineare(x, y)#
La retta che passa più vicina a tutti i punti (minimi quadrati).
Restituisce una retta con le proprietà pendenza, intercetta e affidabilita (da 0 a 1: 1 vuol dire che i punti stanno tutti sulla retta) e il metodo prevedi(x).
r = regressione_lineare([1, 2, 3], [3, 5, 7])stampa(r.prevedi(10))percentile(lista, p)#
Il valore sotto cui sta il p per cento dei numeri (p da 0 a 100).
stampa(percentile([10, 20, 30, 40, 50], 90))variabile lista = [3, 1, 2] # valore di provastampa(percentile(lista, 50))46.0 2.0
quartili(lista)#
I tre numeri che dividono i dati ordinati in quattro parti uguali.
Restituisce [primo, secondo (la mediana), terzo].
stampa(quartili([1, 2, 3, 4, 5]))[2.0, 3.0, 4.0]
normalizza(lista)#
Porta i numeri tra 0 e 1 (il più piccolo diventa 0, il più grande 1).
Utile per confrontare misure diverse o prepararle per l'intelligenza artificiale.
stampa(normalizza([10, 15, 20]))[0.0, 0.5, 1.0]
media_mobile(lista, finestra = 3)#
Le medie di ogni gruppo di finestra numeri vicini.
Serve a "lisciare" i dati che saltano su e giù (temperature, voti, prezzi).
stampa(media_mobile([1, 2, 3, 4, 5], 3))[2.0, 3.0, 4.0]
valori_anomali(lista)#
I numeri molto lontani dagli altri (regola di Tukey sui quartili).
Un valore è anomalo se sta sotto Q1 - 1.5·(Q3 - Q1) o sopra Q3 + 1.5·(Q3 - Q1). Restituisce i valori nell'ordine della lista.
stampa(valori_anomali([10, 12, 11, 13, 12, 95]))[95]
combinazioni(n, k)#
In quanti modi si scelgono k cose tra n, senza badare all'ordine.
stampa(combinazioni(90, 6))stampa(combinazioni(["a", "b", "c"], 2))622614630 [["a", "b"], ["a", "c"], ["b", "c"]]
probabilita_normale(x, media = 0, deviazione = 1)#
La probabilità che un valore "a campana"
(distribuzione normale o di Gauss) sia minore o uguale a x.
stampa(probabilita_normale(180, 170, 10))0.841344746069
area_triangolo(a, b, c)#
L'area di un triangolo dai tre lati (formula di Erone).
stampa(area_triangolo(3, 4, 5))stampa(area_triangolo(10, 3))6.0 15.0
ipotenusa(a, b)#
Il lato lungo di un triangolo rettangolo dai due cateti (teorema di Pitagora).
stampa(ipotenusa(3, 4))5.0
radice(ipotenusa * ipotenusa - cateto * cateto)misure_poligono(lati, lato)#
Perimetro, area, apotema e angolo interno di un poligono regolare.
Restituisce un dizionario.
stampa(misure_poligono(6, 2)["area"])stampa(misure_poligono(4, 3))10.3923048454
{"perimetro": 12, "area": 9.0, "apotema": 1.5, "angolo_interno": 90}volume_solido(forma, misure...)#
Il volume di un solido.
Forme: "cubo" (lato), "parallelepipedo" (lunghezza, larghezza, altezza), "sfera" (raggio), "cilindro" (raggio, altezza), "cono" (raggio, altezza), "piramide" (lato della base quadrata, altezza), "prisma" (area della base, altezza).
stampa(volume_solido("cubo", 3))stampa(volume_solido("sfera", 1))27.0 4.18879020479
distanza_gps(punto1, punto2)#
I chilometri in linea d'aria tra due posti sulla Terra.
Ogni punto è [latitudine, longitudine] in gradi.
stampa(distanza_gps([45.4642, 9.19], [41.9028, 12.4964]))stampa(distanza_gps(45.4642, 9.19, 41.9028, 12.4964))476.885343057 476.885343057
converti(valore, da, a)#
Trasforma una misura da un'unità a un'altra.
Grandezze: lunghezze (mm, cm, m, km, pollici, piedi, miglia...), pesi (g, etti, kg, quintali, libbre...), volumi (ml, litri, m3, cucchiai...), superfici (m2, ettari, km2...), velocità (km/h, m/s, nodi, mph), tempo (secondi, minuti, ore, giorni, settimane, anni di 365 giorni), dati (bit, byte, kb, mb, gb, tb e kib, mib, gib da 1024), energia (joule, calorie, kcal, kwh), angoli (gradi, radianti) e temperature (celsius, fahrenheit, kelvin).
stampa(converti(10, "km", "miglia"))stampa(converti(100, "celsius", "fahrenheit"))stampa(converti(2, "ore", "minuti"))stampa(converti(1, "gb", "mb"))6.21371192237 212 120 1000
interesse_composto(capitale, tasso, anni, volte_all_anno = 1)#
Quanto diventa un capitale
se gli interessi si sommano al capitale e producono a loro volta interessi.
Il tasso è la percentuale annua. Restituisce dei soldi precisi al centesimo.
stampa(interesse_composto(1000, 5, 10))stampa(interesse_composto(1000, 5, 10, 12))1.628,89 € 1.647,01 €
rata_mutuo(importo, tasso, anni)#
La rata mensile di un mutuo o prestito (ammortamento alla francese,
rate tutte uguali). Il tasso è la percentuale annua (TAN).
Il piano mese per mese: piano_ammortamento.
stampa(rata_mutuo(100000, 3, 20))554,60 €
piano_ammortamento(importo, tasso, anni)#
La tabella del mutuo mese per mese.
Ogni riga è un dizionario con "mese", "rata", "interessi", "capitale" (la quota che riduce il debito) e "debito" (quanto resta da pagare); gli importi sono soldi precisi e l'ultima rata chiude il debito esattamente a zero.
stampa(piano_ammortamento(1200, 0, 1)[0]["rata"])100,00 €
massa_molare(formula)#
Quanti grammi pesa una mole della sostanza (g/mol).
Gli idrati si scrivono col punto: "CuSO4·5H2O".
stampa(massa_molare("H2O"))stampa(massa_molare("NaCl"))stampa(massa_molare("Ca(OH)2"))18.015 58.44 74.092
risolvi_equazione(a, b, c)#
Le soluzioni di un'equazione di primo o secondo grado.
Restituisce la lista delle soluzioni reali in ordine (vuota se non ce ne sono).
stampa(risolvi_equazione(2, -6))stampa(risolvi_equazione(1, -5, 6))[3] [2, 3]
risolvi_sistema(coefficienti, termini)#
Risolve un sistema di equazioni lineari (2x2, 3x3...).
I conti sono esatti (con le frazioni).
risolvi_sistema([[2, 1], [1, -1]], [5, 1])derivata(funzione, x)#
La pendenza della funzione nel punto x (calcolo numerico).
stampa(derivata(funzione (x) restituisci x * x fine, 3))6.0
integrale(funzione, da, a)#
L'area sotto la funzione tra da e a (metodo di Simpson).
Se da è più grande di a il risultato cambia segno.
stampa(integrale(funzione (x) restituisci x * x fine, 0, 3))9.0
raggruppa_punti(punti, k)#
Divide i punti in k gruppi di punti vicini (algoritmo k-medie).
Ogni gruppo ha un "centro"; a ogni giro ogni punto va col centro più vicino e i centri si spostano nella media del loro gruppo, finché non cambia più niente. Restituisce un dizionario con "gruppi" (le liste di punti), "centri" ed "etichette" (il numero del gruppo di ogni punto, da 0).
stampa(raggruppa_punti([1, 2, 3, 20, 21, 22], 2)["gruppi"])[[1, 2, 3], [20, 21, 22]]
classifica_vicini(esempi, etichette, punto, k = 3)#
Indovina l'etichetta di un punto nuovo guardando
i k esempi più vicini (algoritmo dei k vicini): vince l'etichetta più frequente tra loro.
A parità vince l'esempio più vicino.
esempi = [[1, 1], [1, 2], [8, 9], [9, 8]]etichette = ["gatto", "gatto", "cane", "cane"]stampa(classifica_vicini(esempi, etichette, [2, 1]))addestra_percettrone(esempi, etichette, giri = 100)#
Allena un neurone artificiale (percettrone)
a distinguere due tipi di cose.
Ogni
prevedi(punto)spiega()p = addestra_percettrone([[1, 1], [2, 1], [8, 9], [9, 8]], ["piccolo", "piccolo", "grande", "grande"])stampa(p.prevedi([7, 7]))Oggetto «retta»
Valore Leo di tipo retta: y = pendenza · x + intercetta.
| Proprietà | Significato |
|---|---|
affidabilita | |
intercetta | |
pendenza |
.prevedi(x)#
Il valore di y che la retta prevede per x. Esempio: r.prevedi(10).
Oggetto «percettrone»
Valore Leo di tipo percettrone: un neurone artificiale addestrato.
| Proprietà | Significato |
|---|---|
errori | |
giri | |
pesi | |
precisione | |
soglia |
.prevedi(punto)#
L'etichetta che il neurone sceglie per il punto.
.spiega()#
Racconta in italiano la regola che il neurone ha imparato.