Transponering matrise i python

stemmer
0

Jeg bare starte mitt eventyr med python og jeg kan ikke vikle hodet mitt rundt oppgaven jeg ble gitt av læreren min.

Utvikle Python-skript som transponere gitt matrise MxN. Alle elementene i matrisen må være tilfeldig generert ved hjelp av randint instruksjon fra tilfeldig modul.

Kan jeg stole på din hjelp?

Takk!

Publisert på 13/01/2020 klokken 23:59
kilden bruker
På andre språk...                            


1 svar

stemmer
0

Det kommer til å være litt vanskelig uten å bruke numpyfunksjoner. Jeg foreslår at du sjekke det ut, det vil spare deg for mye tid.

For nå, kan du gjøre noe som dette:

import random
random.seed(1)

M = 5
N = 3

# create a N X M matrix
l = [[random.randint(1, 10) for _ in range(M)] for j in range(N)]

print(l)

[[3, 10, 2, 5, 2], [8, 8, 8, 7, 4], [2, 8, 1, 7, 7]]

# transpose (M X N matrix)
c = 0
mai = []
for i in range(M):
    x = []
    for j in range(N):
        x.append(l[j][c])
    c += 1
    mai.append(x)

print(mai)

[[3, 8, 2], [10, 8, 8], [2, 8, 1], [5, 7, 7], [2, 4, 7]]

For transponere, du kan også gjøre [*zip(*l)]som foreslått av @Heap i kommentarer.

Svarte 14/01/2020 kl. 00:14
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more