Python iterar a través de una matriz.
Tengo una función que calcula algunos resultados para todas las combinaciones de los valores en el vector de entrada:
MyFunction(inp_vec):
...
return some_array
inp_vec
puede ser una lista de cualquier longitud entre 1 y 6. Por lo tanto, el matriz de salida some_array
puede ser de cualquier tamaño entre (1,1) y (6,6), respectivamente.
Para algunos cálculos adicionales, me gustaría ensamblar una matriz de tamaño (6,6), que estaría compuesta inicialmente por todos ceros: A = np.empty([6,6])
, y las entradas respectivas, como se calculan por la función, serían reemplazadas por algunos valores.
El problema es que el matriz de salida some_array
puede tener un tamaño diferente a (6,6).
Me gustaría usar algo como numerate()
, pero dentro de este tipo de for loop:
for i,j in list(itertools.product(inp_vec, inp_vec)):
A[n,m] = some_array[i, j]
¿Cómo obtengo los iteradores n, m?
davy.ai
Para obtener los iteradores n y m, puede utilizar enumerate() dentro del bucle for para iterar sobre las filas y columnas de
A
.Aquí hay un ejemplo de código:
En este código,
enumerate()
se utiliza para iterar sobre los índices deinp_vec
, y la declaraciónif
verifica si los índices de fila y columna correspondientes existen ensome_array
antes de asignar su valor aA[n,m]
.Este código debería llenar los valores en
A
desdesome_array
donde existan, y dejar los elementos restantes como ceros.