2017-03-29 1 views
-1

Je suis novice en python et j'essaie de trouver un moyen de remplacer implicitement des valeurs dans "array_to_replace" par l'une des deux valeurs de "values_to_use" basées sur les valeurs de "array_of_positions":Boucle implicite à travers le tableau numpy pour remplacer les valeurs

d'abord, la configuration:

values_to_use = np.array([[0.5, 0.3, 0.4], [0.6, 0.7, 0.75]]) 
array_of_positions = np.array([0, 1, 1, 0, 1, 0, 0, 1, 0, 1]) 
array_to_replace = np.array([[5, 5, 4], [6, 5, 4], [1, 2, 3], [9, 9, 9], [8, 8, 8], [7, 7, 7], [6, 5, 7], [5, 7, 9], [1, 3, 5], [3, 3, 3]]) 

Ensuite, le chemin de la force brute pour faire ce que je veux, ce qui est de remplacer les valeurs dans « array_to_replace » fondé sur des valeurs conditionnelles dans « array_of_positions », est quelque chose comme suivant:

for pos in range(0, len(aray_to_replace)): 
    if (array_of_positions[pos] == 0): 
     array_to_replace[pos] = values_to_use[0] 
    else: 
     array_to_replace[pos] = values_to_use[1] 

Avez-vous des recommandations sur la façon de procéder implicitement?

+0

Veuillez expliquer ce que vous essayez d'accomplir. Qu'est-ce que "ceci" dans "faire ceci"? – DyZ

+0

Merci. J'ai modifié ma question pour la rendre plus claire, je l'espère. – James

Répondre

0

La réponse à cette question s'est révélée assez simple. Pour obtenir ce que je voulais, tout ce que je devais faire était la suivante:

print values_to_use [array_of_positions]

Cela m'a donné ce que je avais besoin.