Grundläggande numeriska operationer och arbete med arrays

NumPy är ett kraftfullt bibliotek i Python som används för numeriska operationer. Det är särskilt bra för att hantera stora mängder data och för att utföra matematiska operationer på arrays. Till skillnad från Python-listor är NumPy-arrays mycket snabbare och har en mängd inbyggda funktioner som gör matematiska beräkningar enklare.
Nästan klar, informera gärna i texten mycket kort vad pip är för något men att även det är något vi kommer gå in närmare på senare.
Installera NumPy
Om det är första gången du använder NumPy, behöver du installera biblioteket. Detta kan enkelt göras med följande kommando:
bash
pip install numpy pip är ett verktyg för att installera och hantera Python-paket, som NumPy. Vi kommer att gå in närmare på hur pip fungerar senare.
Att installera NumPy gör det möjligt att utföra kraftfulla numeriska operationer och hantera stora mängder data effektivt. Om du arbetar i en virtuell miljö (vilket vi kommer att gå igenom senare), säkerställer detta att dina projekt är isolerade och att alla beroenden är hanterade korrekt. Detta hjälper till att undvika konflikter mellan olika projekt som kan ha olika versioner av samma bibliotek.
Observera att om du inte använder en virtuell miljö, kommer installationen av NumPy att påverka alla projekt på samma dator som inte använder en virtuell miljö.
Vad är en array?
En NumPy-array är en datastruktur som liknar en lista men som är optimerad för att hantera numeriska data. Arrays i NumPy är n-dimensionella, vilket innebär att de kan representera allt från enkla listor till fler-dimensionella matriser.
import numpy as np# Create a 1D arrayarr = np.array([1, 2, 3, 4, 5])print(arr)# Output: [1 2 3 4 5]# Create a 2D arraymatrix = np.array([[1, 2, 3], [4, 5, 6]])print(matrix)# Output:# [[1 2 3]# [4 5 6]]Code language: PHP (php) Skapa arrays
NumPy erbjuder flera sätt att skapa arrays, från att konvertera listor till att generera arrays med specifika mönster.
# Create an array from a Python listarr = np.array([1, 2, 3, 4, 5])# Create an array of zeroszeros = np.zeros((3, 4))print(zeros)# Output: A 3x4 matrix of zeros# Create an array of onesones = np.ones((2, 3))print(ones)# Output: A 2x3 matrix of ones# Create an array with a range of numbersrange_arr = np.arange(0, 10, 2) # Start at 0, end before 10, step by 2print(range_arr)# Output: [0 2 4 6 8]# Create a linearly spaced arraylinspace_arr = np.linspace(0, 1, 5) # 5 evenly spaced numbers between 0 and 1print(linspace_arr)# Output: [0. 0.25 0.5 0.75 1. ]Code language: PHP (php) Array-egenskaper
Du kan inspektera en array för att få information om dess form, datatyp, och storlek.
arr = np.array([[1, 2, 3], [4, 5, 6]])print(arr.shape) # Output: (2, 3) - 2 rows and 3 columnsprint(arr.ndim) # Output: 2 - number of dimensionsprint(arr.size) # Output: 6 - total number of elementsprint(arr.dtype) # Output: int64 (or int32 depending on the system)Code language: PHP (php) Grundläggande matematiska operationer
NumPy gör det enkelt att utföra matematiska operationer på hela arrays.
arr = np.array([1, 2, 3, 4])# Element-wise operationsprint(arr + 2) # Output: [3 4 5 6]print(arr * 3) # Output: [ 3 6 9 12]# Array-to-array operationsarr2 = np.array([5, 6, 7, 8])print(arr + arr2) # Output: [ 6 8 10 12]print(arr * arr2) # Output: [ 5 12 21 32]# Mathematical functionsprint(np.sqrt(arr)) # Output: [1. 1.41421356 1.73205081 2. ]print(np.sum(arr)) # Output: 10print(np.mean(arr)) # Output: 2.5Code language: PHP (php) Indexering och skivning
Precis som med listor kan du indexera och skiva NumPy-arrays. Du kan också använda avancerad indexering.
arr = np.array([[1, 2, 3], [4, 5, 6]])# Access a specific elementprint(arr[1, 2]) # Output: 6# Slice a subarrayprint(arr[:, 1]) # Output: [2 5]# Boolean indexingprint(arr[arr > 3]) # Output: [4 5 6]Code language: PHP (php) Sammanfattande tabell: Vanliga NumPy-funktioner
| Funktion | Beskrivning | Exempel |
|---|---|---|
np.zeros() | Skapar en array fylld med nollor | np.zeros((2, 3)) |
np.ones() | Skapar en array fylld med ettor | np.ones((3, 3)) |
np.arange() | Skapar en array med ett intervall | np.arange(0, 10, 2) |
np.linspace() | Skapar en linjärt utspridd array | np.linspace(0, 1, 5) |
np.sum() | Summan av alla element | np.sum(arr) |
np.mean() | Medelvärdet av alla element | np.mean(arr) |
np.sqrt() | Kvadratroten av varje element | np.sqrt(arr) |
Praktiskt exempel: Analysera data med NumPy
Här är ett exempel som analyserar data från en sensor.
import numpy as np# Simulated sensor data (temperatures in Celsius)data = np.array([22.4, 23.1, 21.7, 22.9, 23.4])# Calculate basic statisticsmean_temp = np.mean(data)max_temp = np.max(data)min_temp = np.min(data)# Convert to Fahrenheitdata_fahrenheit = data * 9/5 + 32# Resultsprint(f"Mean temperature: {mean_temp:.1f}°C") # Output: Mean temperature: 22.7°Cprint(f"Max temperature: {max_temp:.1f}°C") # Output: Max temperature: 23.4°Cprint(f"Min temperature: {min_temp:.1f}°C") # Output: Min temperature: 21.7°Cprint(f"Temperatures in Fahrenheit: {data_fahrenheit}")# Output: [72.32 73.58 71.06 73.22 74.12]Code language: PHP (php) Tips för att använda NumPy
- Välj rätt datatyp: Använd specifika datatyper som
int32ellerfloat64om du vill optimera minnesanvändningen. - Undvik loopar: Använd NumPy:s inbyggda funktioner istället för att iterera manuellt. Det är både snabbare och mer läsbart.
- Använd
np.randomför simuleringar: Modulennp.randomär utmärkt för att generera slumpmässiga data.
Vanliga fallgropar
- Felaktiga datatyper: NumPy-arrays kräver att alla element har samma datatyp, vilket kan leda till oavsiktliga konverteringar.
- Indexeringsfel: Kom ihåg att NumPy-arrays är noll-indexerade och att index utanför räckvidden ger ett fel.
- Blanda NumPy och Python-listor: Försök att hålla dig till NumPy-arrays när du använder biblioteket för att undvika oväntade resultat.
Sammanfattande exempel
Här är ett exempel som kombinerar flera av de koncept vi har lärt oss i detta kapitel.
import numpy as np# Generate random data: daily sales in a weeksales = np.random.randint(50, 150, size=(7, 3)) # 7 days, 3 products# Calculate total sales for each producttotal_sales = np.sum(sales, axis=0)# Calculate the average daily sales for all productsaverage_sales = np.mean(sales)# Find the maximum sales in a daymax_sales = np.max(sales)# Display resultsprint("Daily sales (rows: days, columns: products):")print(sales)print(f"Total sales for each product: {total_sales}") # Output: [total sales per product]print(f"Average daily sales: {average_sales:.1f}") # Output: average salesprint(f"Maximum sales in a day: {max_sales}")Code language: PHP (php) Sammanfattning
I detta kapitel har vi lärt oss:
- Hur man skapar och hanterar NumPy-arrays.
- Grundläggande matematiska operationer och array-indexering.
- Praktiska exempel för att analysera data.
- Tips och vanliga fallgropar för att arbeta med NumPy.
NumPy är ett kraftfullt verktyg för numerisk programmering och en grundsten i vetenskaplig programmering och datavetenskap.

