User Tools

Site Tools


appunti3s:numpy

This is an old revision of the document!


indice < linguaggio_python

numpy

https://numpy.org/doc/stable/

Il python (classico) dispone di oggetti array.array (monodimensionali)

numpy permette di usare un nuovo tipo di array

 numpy.ndarray 

noti anche con il termine “array” (cosa che potrebbe causare confusione se non si usasse il nome del modulo numpy come prefisso)

Vediamo alcuni esempi per definire un array
1.py
import numpy as np
a = [[ 1., 0., 0.], [ 0., 1., 2.]]
b = np.array([1.2, 3.5, 5.1])
c = np.array( [ [1.0,2.0], [3.0,4.0] ], dtype=complex )
d = np.zeros((3, 4))
e = np.ones((3, 4))

Questa istruzione preleva solo alcuni valori, tutti e tre della seconda colonna.

c[0:2, 1]
c[:,1]     # equivalente
Iterazione

usando un indice si stampano le righe

  >>> for riga in c:
  ...     print(row)

usando flat si stampano i singoli elementi

  >>> for elemento in c.flat:
  ...     print(element)
Esempio in cui si vuole valutare una funzione
2.py
from numpy import pi
x = np.linspace( 0, 2*pi, 100 )        # useful to evaluate function at lots of points
f = np.sin(x)
b = np.fromfunction(f,(100,0),dtype=int)
Esempio di calcolo
  >>> b = np.array([1.2, 3.5, 5.1])
  >>> b**2
  array([ 1.44, 12.25, 26.01])
Prodotto vettoriale
  >>> d @ e
Prodotto scalare
operazioni scalari
  b.sum()         # somma tutti gli elementi
  b.sum(axis=0)   # somma in colonna
  b.sum(axis=1)   # somma in righe
Randomizzare

Anche numpy ha il proprio generatore di numeri causali

4.py
  import numpy.random as np_r
  rng = np_r.default_rng()
  vals = rng.standard_normal(10)
  more_vals = rng.standard_normal(10)
Copia e vista

Non esistono puntatori, ma si usano!

  >>> a = np.array([2,3,4])
  >>> b = a                # b punta ad a, esiste un solo array
  >>> b is a
  True
  >>> print(id(a))
  >>> print(id(b))
appunti3s/numpy.1594277325.txt.gz · Last modified: 2020/07/09 08:48 by profpro