AAGC:
Par exemple , j'ai une 2D
liste de 2x2
dimension 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 2D
liste à 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 numpy
bibliothè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]]