Python - Facile et rapide pour les valeurs Diviser dans une liste 2D par une valeur unique

AAGC:

Par exemple , j'ai une 2Dliste de 2x2dimension stockée dans une variable r.

 12    24
 36    48

Je veux diviser chaque valeur dans la liste par 2. Une façon lente facile à faire est de parcourir chaque ligne et colonne et le diviser par 2.

rows = 2
columns = 2
for x in range(rows):
    for y in range(columns):
        r[x][y] = r[x][y]/2

Est - il un moyen facile et rapide de diviser chacune des valeurs dans une 2Dliste à une valeur spécifique autre que l'approche manuelle? J'ai essayé le code ci - dessous , mais il génère une erreur:

 s = r /2

Erreur:

TypeError: unsupported operand type(s) for /: 'list' and 'int'
Shubham Sharma:

Vous pouvez utiliser la numpybibliothèque pour obtenir le résultat souhaité. il utilise vectorisation donc sa façon la plus rapide de faire l'opération.

Essaye ça:

import numpy as np

arr = np.array(r) # --> initialize with 2d array
arr = arr / 2 # --> Now each element in the 2d array gets divided by 2

Par exemple:

arr = np.array([[1, 2], [2, 3]]) # --> initialize with 2d array
arr = arr / 2 # --> divide by the scalar

print(arr)

Production:

[[0.5 1. ]
 [1.  1.5]]

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=365193&siteId=1
conseillé
Classement