appunti3s:numpy
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
appunti3s:numpy [2020/07/09 08:48] – [numpy] profpro | appunti3s:numpy [2020/08/02 17:27] (current) – profpro | ||
---|---|---|---|
Line 11: | Line 11: | ||
< | < | ||
- | noti anche con il termine " | + | * **ndarray** = N-dimensional array, ndarray, sono noti anche con il termine " |
==Vediamo alcuni esempi per definire un array== | ==Vediamo alcuni esempi per definire un array== | ||
+ | |||
+ | * dtype = data type | ||
<file python 1.py> | <file python 1.py> | ||
Line 19: | Line 21: | ||
a = [[ 1., 0., 0.], [ 0., 1., 2.]] | a = [[ 1., 0., 0.], [ 0., 1., 2.]] | ||
b = np.array([1.2, | b = np.array([1.2, | ||
- | c = np.array( [ [1.0,2.0], [3.0,4.0] ], dtype=complex ) | + | c = np.array( [ [1.0,2.0], [3.0,4.0] ], dtype=complex ) # oppure int32 |
d = np.zeros((3, | d = np.zeros((3, | ||
e = np.ones((3, 4)) | e = np.ones((3, 4)) | ||
+ | del e # libera la memoria | ||
+ | |||
</ | </ | ||
+ | |||
+ | * shape = definisce la forma (le dimensioni) dell' | ||
+ | * nel precedente esempio | ||
+ | * la variabile a, ha due assi, il primo ha lunghezza 3, il secondo ha lunghezza 2 | ||
+ | * la variabile b ha due assi, il primo ha lunghezza 3, il secondo ha lunghezza 1, quindi si dice che ha un solo asse. | ||
+ | * Per comprendere questo termine (numero di assi) basta immaginare che la variabile b possa essere usata per contenere i punti dell' | ||
Questa istruzione preleva solo alcuni valori, tutti e tre della seconda colonna. | Questa istruzione preleva solo alcuni valori, tutti e tre della seconda colonna. | ||
c[0:2, 1] | c[0:2, 1] | ||
c[:, | c[:, | ||
+ | |||
+ | |||
+ | (Per una matrice 2D, quando si richiama un elemento, è del tipo nome[riga, | ||
+ | |||
==Iterazione== | ==Iterazione== | ||
- | usando un indice si stampano | + | usando un indice si stampano |
<code python> | <code python> | ||
>>> | >>> | ||
Line 51: | Line 65: | ||
f = np.sin(x) | f = np.sin(x) | ||
b = np.fromfunction(f, | b = np.fromfunction(f, | ||
+ | y,x = np.ogrid[ -1.4: | ||
</ | </ | ||
- | ==Esempio di calcolo== | + | ====Esempio di operatori==== |
+ | |||
+ | == matrix product | ||
+ | |||
+ | Scopriamo che è semplice fare le operazioni sui singoli elementi (potenze) | ||
<code python> | <code python> | ||
Line 61: | Line 80: | ||
</ | </ | ||
- | ==Prodotto vettoriale== | + | |
+ | ==Prodotto vettoriale | ||
+ | |||
+ | Di solito si moltiplicano due array 1 D e si ottiene un terzo array 1 D, ortogonale. | ||
<code python> | <code python> | ||
- | | + | |
</ | </ | ||
- | ==Prodotto scalare== | + | ==Prodotto scalare |
+ | |||
+ | Ha un comportamento diverso, a seconda dei fattori utilizzati | ||
+ | |||
+ | * usando il tipo scalare 0 D, equivale a fare il prodotto con asterisco * | ||
+ | * usando il tipo array 1 D, equivale a fare il prodotto scalare, o somma dei prodotti | ||
+ | * usando il tipo array 2 D, ......... | ||
+ | |||
+ | < | ||
+ | fare un esempio.... | ||
+ | </ | ||
+ | Quando gli array sono 2D è preferibile usare @ | ||
+ | |||
+ | <code python> | ||
+ | >>> | ||
+ | </ | ||
== operazioni scalari == | == operazioni scalari == | ||
Line 100: | Line 137: | ||
>>> | >>> | ||
</ | </ | ||
+ | |||
+ | <code python> | ||
+ | >>> | ||
+ | >>> | ||
+ | </ | ||
+ | |||
+ | Modificando i dati di A, si modifica anche C! | ||
+ | Modificando i dati di C, si modifica anche A! | ||
+ | Modificando gli attributi (flag) di C NON si modificano i parametri di A! | ||
+ | |||
+ | == Deep copy == | ||
+ | |||
+ | <code python> | ||
+ | >>> | ||
+ | >>> | ||
+ | </ | ||
+ | |||
+ | ==Array di Indici di Array== | ||
+ | |||
+ | <code python> | ||
+ | >>> | ||
+ | >>> | ||
+ | >>> | ||
+ | array([ 1, 1, 9, 64, 25]) | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | |||
appunti3s/numpy.1594277325.txt.gz · Last modified: 2020/07/09 08:48 by profpro