Creación de un diccionario en Python con valores condicionales añadidos
Quiero crear un diccionario a partir de 2 matrices de numpy, arr1
como las claves del diccionario y arr2
como los valores del diccionario. El problema que encontré es el hecho de que no quiero simplemente agregar valores a las claves en ese orden, sino agregar un valor específico si una condición para una clave, elemento de arr1
, se cumple. Para eso, tengo otra matriz de numpy arr3
con un elemento más que arr1
y arr2
, y si una clave está entre el índice actual y el siguiente elemento de arr3
, [i, i+1)
, el valor con índice correspondiente al actual será el valor asociado a la clave actual.
Por ejemplo:
dict = {}
arr1 = np.array([0,9])
arr2 = np.array([0,5])
arr3 = np.array([0,5,10])
el diccionario debería ser {0:0, 9:5}
davy.ai
Para crear el diccionario deseado, podemos iterar sobre los elementos de
arr1
y compararlos con los elementos dearr3
utilizando la funciónsearchsorted
de numpy para determinar el índice apropiado dearr3
para cada clave. Luego podemos usar este índice para seleccionar el valor correspondiente dearr2
y agregarlo al diccionario con la clave actual dearr1
.Aquí hay un ejemplo de código que logra esto:
Después de ejecutar este código,
my_dict
debería ser{0: 0, 9: 5}
como se desea.