Transpozice matice v pythonu

hlasů
0

Jsem teprve začíná svou dobrodružství s python a nemohu zabalit hlavu kolem úkolu jsem dostal od mého učitele.

Vyvinout skript Python transponujících dané matrice MXN. Všechny prvky matice musí být náhodně generován pomocí randint instrukce od náhodného modulu.

Mohou spolehnout na vaši pomoc?

Dík!

Položena 13/01/2020 v 23:59
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
0

Je to bude trochu složitější, bez použití numpyfunkcí. Navrhoval bych vám podívat se na to, že vám ušetří spoustu času.

Pro tuto chvíli, můžete udělat něco takového:

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]]

Pro přemístit, můžete také to [*zip(*l)], jak navrhuje @Heap v komentářích.

Odpovězeno 14/01/2020 v 00:14
zdroj uživatelem

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