Introduktion till multidimensionella matriser i Python

Ofta i det dagliga livet har vi problem där vi behöver lagra data i ett rektangulärt bordformat. Dessa tabeller kan också kallas en matris eller 2D-array. I Python kan multidimensionella matriser uppnås genom att ha en lista i listan eller kapslade listor. Listan kan användas för att representera data i nedanstående format i python:

Lista = (1, 2, 3)

Listan kan skrivas med kommaseparerade värden. Listan kan ha data som heltal, flottör, sträng etc. och kan ändras också efter skapandet. Indexeringen i listor är ganska rak framåt med indexet börjar från 0 och sträcker sig till hela längden på lista-1.

När en lista har andra listor som element bildar den en flerdimensionell lista eller array. Till exempel:

Lista = ((1, 2), (2, 5), (5, 1))

Här kan varje värde på listan nås genom att skriva listnamnet följt av kvadratisk parentes för att hämta de yttre listvärdena enligt nedan:

Skriv ut (lista (1))

# (2, 5)

Om du vill gå längre in i den inre listan lägg till ytterligare en fyrkantig konsol för att få åtkomst till dess element enligt nedan:

Skriv ut (lista (1) (0))

# 2

På samma sätt, om vi har flera listor i en lista som:

Lista = ((1, 3, 5), (8, 5, 6), (7, 1, 6)) # kan också ses som

| 1, 3, 5 |

| 8, 5, 6 |

| 7, 1, 6 |

Alla element i listan kan nås genom nedanstående index:

(0) (0), (0) (1), (0) (2) (1) (0), (1) (1), (1) (2) (2) (0), (2) (1), (2) (2)

Skapa en flerdimensionell lista eller array

Låt oss anta att vi har två variabler som, antalet rader 'r' och antalet kolumner 'c'. därmed att göra en matris av storlek m * n, kan göras som:

Array = ( (0) * c ) * r ) # with each element value as 0

Denna typ av deklaration skapar inte m * n-utrymmen i minnet, snarare skapas bara ett heltal som hänvisas till av varje element i den inre listan medan de inre listorna sätts som element i den yttre listan. Därför i så fall om vi ändrar något element till 5 kommer hela matrisen att ha 5 som värden i varje elementplats i samma kolumn som nedan:

Array (0) (0) = 5

| 5, 0, 0 |

| 5, 0, 0 |

| 5, 0, 0 |

Ett annat sätt att förklara en array är att använda en generator med en lista över 'c' element upprepade 'r' gånger. Förklaringen kan göras enligt nedan:

c = 4
r = 3
Array = ( (0) * c for i in range(r) )

Här över är varje element helt oberoende av de andra elementen i listan. Listan (0) * c är konstruerad r gånger som en ny lista, och här händer ingen kopiering av referenser.

Hur matar du in värden i flerdimensionella matriser?

Här antar vi en 2D-grupp med rader och c-kolumner för vilka vi tar värdena på elementen från användaren.

# Användaren kommer att ange antalet rader på den första raden

r = int(input())
arr = () for i in range(r):
arr.append((int(j) for j in input().split()))

Iterating värden för en flerdimensionell matris

För att upprepa alla element i den flerdimensionella matrisen måste vi använda kapslade för slingkoncept enligt nedan:

# till en början kommer vi att skapa en matris med c-kolumner och rader

c = 4
r = 3
arr = ((0) * c for i in range(r)) # loop will run for the length of the outer list
for i in range(r):
# loop will run for the length of the inner lists
for j in range(c):
if i < j:
arr(i)(j) = 8
elif i > j:
arr(i)(j) = 4
else:
arr(i)(j) = 7
for r in arr:
print( ' '.join((str(x) for x in r) ) )

Numpy flerdimensionella matriser

Låt oss se de oförstörda multimedia-matriserna i python:

Numpy är ett fördefinierat paket i python som används för att utföra kraftfulla matematiska operationer och stödja ett N-dimensionellt arrayobjekt. Numpys matrisklass är känd som "ndarray" som är nyckeln till denna ram. Objekt från den här klassen kallas en numpy array. Skillnaden mellan multidimensionell lista och Numpy Arrays är att numpy arrays är homogena, dvs det kan innehålla ett enda heltal, sträng, float, etc., värden och dess storlek är fast. Den flerdimensionella listan kan enkelt konverteras till Numpy-matriser enligt nedan:

import numpy as nmp
arr = nmp.array( ( (1, 0), (6, 4) ) )
print(arr)

Här kastas den givna flerdimensionella listan till Numpy array arr.

Skapa en numpy Array

import numpy as nmp
X = nmp.array( ( ( 1, 6, 7), ( 5, 9, 2) ) )
print(X) #Array of integers
X = nmp.array( ( ( 1, 6.2, 7), ( 5, 9, 2) ) )
print(X) #Array of floats
X = nmp.array( ( ( 1, 6, 7), ( 5, 9, 2) ), dtype = complex )
print(X) #Array of complex numbers

Produktion:

((1 6 7) (5 9 2)) ((1. 6.2 7.) (5. 9. 2.)) ((1. + 0.j 6. + 0.j 7. + 0.j) (5. + 0.j 9. + 0.j 2. + 0.j))

Få åtkomst till numpiga matriselement, rader och kolumner

Varje element i Numpy-matrisen kan nås på samma sätt som i flerdimensionell lista, dvs. matrisnamn följt av två kvadratiska hängslen som kommer att säga rad- och kolumnindex att välja ett specifikt element.

Exempel:

import numpy as nmp
X = nmp.array( ( ( 1, 6, 7),
( 5, 9, 2),
( 3, 8, 4) ) )
print(X(1)(2)) # element at the given index ie 2
print(X(0)) # first row
print(X(1)) # second row
print(X(-1)) # last row
print(X(:, 0)) # first column
print(X(:, 2)) # third column
print(X(:, -1)) # last column

Produktion:

2

(1 6 7) (5 9 2) (3 8 4) (1 5 3) (7 2 4) (7 2 4)

Vissa egenskaper hos Numpy Array

Vissa grundläggande egenskaper hos numpiga matriser används i nedanstående program:

import numpy as nmp
zero_array = nmp.zeros( (3, 2) )
print('zero_array = ', zero_array)
one_array = nmp.ones( (3, 2) )
print('one_array = ', one_array)
X = nmp.arange(9).reshape(3, 3)
print('X= ', X)
print('Transpose of X= ', X.transpose())

Produktion:
zero_array = ((0. 0.) (0. 0.) (0. 0.)) one_array = ((1. 1.) (1. 1.) (1. 1.)) X = ((0 1) 2) (3 4 5) (6 7 8)) Transponera av X = ((0 3 6) (1 4 7) (2 5 8))

Slutsats

Multidimensionella matriser i Python ger möjlighet att lagra olika typer av data i en enda grupp (dvs i fall av multidimensionell lista) med varje element inre grupp som kan lagra oberoende data från resten av matrisen med sin egen längd, även känd som taggad matris, som inte kan uppnås på Java, C och andra språk.

Rekommenderade artiklar

Detta är en guide till flerdimensionella matriser i Python. Här diskuterar vi introduktionen till flerdimensionella matriser i Python, skapa en flerdimensionell lista eller array, etc. Du kan också gå igenom våra andra föreslagna artiklar för att lära dig mer–

  1. C # Jagged Arrays
  2. 3D-matriser i Java
  3. Vad är TensorFlow?
  4. Vad är NumPy?
  5. För Loop i PHP
  6. 3D-matriser i C ++
  7. Arrays i PHP
  8. Hur fungerar matriser och listor i Python?
  9. Hur fungerar Array i Unix med Syntax?

Kategori: