NumPy 

NumPyÂ

Grundläggande numeriska operationer och arbete med arrays

Woman and More Math

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

FunktionBeskrivningExempel
np.zeros()Skapar en array fylld med nollornp.zeros((2, 3))
np.ones()Skapar en array fylld med ettornp.ones((3, 3))
np.arange()Skapar en array med ett intervallnp.arange(0, 10, 2)
np.linspace()Skapar en linjärt utspridd arraynp.linspace(0, 1, 5)
np.sum()Summan av alla elementnp.sum(arr)
np.mean()Medelvärdet av alla elementnp.mean(arr)
np.sqrt()Kvadratroten av varje elementnp.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 int32 eller float64 om 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ändnp.random för simuleringar: Modulen np.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.

Leave a Reply

Your email address will not be published. Required fields are marked *