Introducció a NumPy

NumPy (Numerical Python) és una biblioteca fonamental per al càlcul científic en Python. Proporciona suport per a arrays multidimensionals, així com una àmplia varietat de funcions matemàtiques per operar amb aquests arrays.

Característiques Clau de NumPy

  • Arrays Multidimensionals: NumPy introdueix l'objecte ndarray, que és una estructura de dades eficient per a emmagatzemar arrays de dimensions arbitràries.
  • Operacions Vectoritzades: Permet realitzar operacions matemàtiques sobre arrays de manera eficient i ràpida.
  • Funcions Matemàtiques: Inclou una gran varietat de funcions matemàtiques per a operacions com àlgebra lineal, estadístiques, transformades de Fourier, etc.
  • Integració amb altres Biblioteques: NumPy és compatible amb altres biblioteques com Pandas, Matplotlib i Scikit-learn, facilitant el treball amb dades i la seva visualització.

Instal·lació de NumPy

Abans de començar a utilitzar NumPy, necessitem instal·lar-lo. Això es pot fer fàcilment utilitzant pip:

pip install numpy

Creació i Manipulació d'Arrays

Creació d'Arrays

NumPy proporciona diverses maneres de crear arrays:

import numpy as np

# Array des d'una llista
a = np.array([1, 2, 3, 4, 5])
print(a)

# Array de zeros
b = np.zeros((3, 4))
print(b)

# Array de uns
c = np.ones((2, 3))
print(c)

# Array buit (inicialitzat amb valors aleatoris)
d = np.empty((2, 2))
print(d)

# Array amb un rang de valors
e = np.arange(10, 20, 2)
print(e)

# Array amb valors espaiats uniformement
f = np.linspace(0, 1, 5)
print(f)

Propietats dels Arrays

Els arrays de NumPy tenen diverses propietats útils:

a = np.array([[1, 2, 3], [4, 5, 6]])

print("Shape:", a.shape)  # Dimensions de l'array
print("Size:", a.size)    # Nombre total d'elements
print("Dtype:", a.dtype)  # Tipus de dades dels elements

Operacions Bàsiques amb Arrays

NumPy permet realitzar operacions matemàtiques de manera eficient:

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])

# Suma
print(a + b)

# Resta
print(a - b)

# Multiplicació element a element
print(a * b)

# Divisió element a element
print(a / b)

# Producte de matrius
c = np.array([[1, 2], [3, 4]])
d = np.array([[5, 6], [7, 8]])
print(np.dot(c, d))

Indexació i Tall d'Arrays

Podem accedir a elements individuals i subarrays utilitzant indexació i tall:

a = np.array([1, 2, 3, 4, 5])

# Accés a elements individuals
print(a[0])  # Primer element
print(a[-1]) # Últim element

# Tall d'arrays
print(a[1:4])  # Elements del segon al quart
print(a[:3])   # Primers tres elements
print(a[::2])  # Elements amb pas 2

Funcions Matemàtiques

NumPy inclou moltes funcions matemàtiques per operar amb arrays:

a = np.array([1, 2, 3, 4, 5])

# Funcions universals (ufuncs)
print(np.sqrt(a))   # Arrel quadrada
print(np.exp(a))    # Exponencial
print(np.log(a))    # Logaritme natural

# Funcions estadístiques
print(np.mean(a))   # Mitjana
print(np.median(a)) # Mediana
print(np.std(a))    # Desviació estàndard

Exercicis Pràctics

Exercici 1: Creació i Manipulació d'Arrays

  1. Crea un array de NumPy amb els nombres del 10 al 20.
  2. Calcula la suma de tots els elements de l'array.
  3. Calcula la mitjana dels elements de l'array.
  4. Crea un nou array que contingui els quadrats dels elements de l'array original.

Solució:

import numpy as np

# 1. Creació de l'array
a = np.arange(10, 21)
print("Array:", a)

# 2. Suma dels elements
sum_a = np.sum(a)
print("Suma:", sum_a)

# 3. Mitjana dels elements
mean_a = np.mean(a)
print("Mitjana:", mean_a)

# 4. Quadrats dels elements
squares_a = np.square(a)
print("Quadrats:", squares_a)

Exercici 2: Operacions amb Matrius

  1. Crea dues matrius de 3x3 amb valors aleatoris.
  2. Calcula la suma de les dues matrius.
  3. Calcula el producte de les dues matrius.
  4. Calcula la transposada de la primera matriu.

Solució:

import numpy as np

# 1. Creació de matrius
matrix1 = np.random.rand(3, 3)
matrix2 = np.random.rand(3, 3)
print("Matriu 1:\n", matrix1)
print("Matriu 2:\n", matrix2)

# 2. Suma de matrius
sum_matrix = np.add(matrix1, matrix2)
print("Suma de matrius:\n", sum_matrix)

# 3. Producte de matrius
product_matrix = np.dot(matrix1, matrix2)
print("Producte de matrius:\n", product_matrix)

# 4. Transposada de la primera matriu
transpose_matrix1 = np.transpose(matrix1)
print("Transposada de la primera matriu:\n", transpose_matrix1)

Conclusió

NumPy és una eina poderosa per al càlcul numèric en Python. Hem après a crear i manipular arrays, realitzar operacions matemàtiques bàsiques i utilitzar funcions estadístiques. Aquestes habilitats són fonamentals per a treballar amb dades i realitzar càlculs eficients en projectes de ciència de dades i enginyeria. En el proper tema, explorarem com utilitzar Pandas per a la manipulació de dades.

Curs de Programació en Python

Mòdul 1: Introducció a Python

Mòdul 2: Estructures de Control

Mòdul 3: Funcions i Mòduls

Mòdul 4: Estructures de Dades

Mòdul 5: Programació Orientada a Objectes

Mòdul 6: Gestió de Fitxers

Mòdul 7: Gestió d'Errors i Excepcions

Mòdul 8: Temes Avançats

Mòdul 9: Proves i Depuració

Mòdul 10: Desenvolupament Web amb Python

Mòdul 11: Ciència de Dades amb Python

Mòdul 12: Projecte Final

© Copyright 2024. Tots els drets reservats