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:
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
- Crea un array de NumPy amb els nombres del 10 al 20.
- Calcula la suma de tots els elements de l'array.
- Calcula la mitjana dels elements de l'array.
- 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
- Crea dues matrius de 3x3 amb valors aleatoris.
- Calcula la suma de les dues matrius.
- Calcula el producte de les dues matrius.
- 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
- Introducció a Python
- Configuració de l'Entorn de Desenvolupament
- Sintaxi de Python i Tipus de Dades Bàsics
- Variables i Constants
- Entrada i Sortida Bàsiques
Mòdul 2: Estructures de Control
Mòdul 3: Funcions i Mòduls
- Definició de Funcions
- Arguments de Funció
- Funcions Lambda
- Mòduls i Paquets
- Visió General de la Biblioteca Estàndard
Mòdul 4: Estructures de Dades
Mòdul 5: Programació Orientada a Objectes
Mòdul 6: Gestió de Fitxers
- Lectura i Escriptura de Fitxers
- Treballant amb Fitxers CSV
- Gestió de Dades JSON
- Operacions amb Fitxers i Directoris
Mòdul 7: Gestió d'Errors i Excepcions
Mòdul 8: Temes Avançats
- Decoradors
- Generadors
- Gestors de Context
- Concurrència: Fils i Processos
- Asyncio per a Programació Asíncrona
Mòdul 9: Proves i Depuració
- Introducció a les Proves
- Proves Unitàries amb unittest
- Desenvolupament Guiat per Proves
- Tècniques de Depuració
- Ús de pdb per a la Depuració
Mòdul 10: Desenvolupament Web amb Python
- Introducció al Desenvolupament Web
- Conceptes Bàsics del Framework Flask
- Construcció d'APIs REST amb Flask
- Introducció a Django
- Construcció d'Aplicacions Web amb Django
Mòdul 11: Ciència de Dades amb Python
- Introducció a la Ciència de Dades
- NumPy per al Càlcul Numèric
- Pandas per a la Manipulació de Dades
- Matplotlib per a la Visualització de Dades
- Introducció al Machine Learning amb scikit-learn