-->

Intelligenza Artificiale

A un certo punto non fu più la biologia a dominare il destino dell'uomo, ma il prodotto del suo cervello: la cultura.
Cosicché: "Le uniche leggi della materia sono quelle che la nostra mente deve architettare e le uniche leggi della mente sono architettate per essa dalla materia".
JAMES CLERK MAXWELL

Numpy


Numpy progettato per gestire array e matrici

Uso di NumPy

Numerical Python: è una libreria fondamentale per il calcolo scientifico in Python, progettata per gestire grandi array e matrici di dati numerici.
NumPy offre funzioni per effettuare operazioni matematiche complesse in modo efficiente.

Creazione di Array



import numpy as np

# Array 1D
a = np.array([1, 2, 3, 4, 5])
print("Array 1D:", a)

# Array 2D
b = np.array([[1, 2, 3], [4, 5, 6]])
print("Array 2D:\n", b)

# Array di zeri
c = np.zeros((2, 3))
print("Array di zeri:\n", c)

# Array di uno
d = np.ones((3, 4))
print("Array di uno:\n", d)

# Array vuoto (non inizializzato)
e = np.empty((2, 3))
print("Array vuoto:\n", e)

# Array con intervallo
f = np.arange(0, 10, 2)
print("Array con intervallo:", f)

# Array con intervallo di numeri (linspace)
g = np.linspace(0, 1, 5)
print("Array linspace:", g)


Operazioni tra Array



# Operazioni element-wise
h = np.array([1, 2, 3])
i = np.array([4, 5, 6])

# Addizione
print("Addizione:", h + i)

# Sottrazione
print("Sottrazione:", h - i)

# Moltiplicazione
print("Moltiplicazione:", h * i)

# Divisione
print("Divisione:", h / i)

# Radice quadrata
print("Radice quadrata:", np.sqrt(h))

Lettura e Modifica di Array



# Lettura di un elemento
print("Elemento a[1]:", a[1])

# Modifica di un elemento
a[1] = 10
print("Array modificato:", a)

# Slicing
print("Slicing a[1:4]:", a[1:4])

# Modifica di una sezione
a[1:4] = [20, 30, 40]
print("Array modificato con slicing:", a)

Filtrare i Dati


# Condizione: elementi maggiori di 3
condition = a > 3
print("Condizione (a > 3):", condition)

# Filtrare i dati
filtered_data = a[condition]
print("Dati filtrati:", filtered_data)

Uso di `where`



# Array di esempio
a = np.array([1, 2, 3, 4, 5])

# np.where: se la condizione è vera, prendere il valore dall'array 'a', altrimenti prendere -1
result = np.where(a > 3, a, -1)
print("np.where con condizione (a > 3):", result)

# np.where con array 2D
b = np.array([[1, 2, 3], [4, 5, 6]])
result2 = np.where(b > 3, b, -1)
print("np.where con array 2D:\n", result2)