Je suis assez nouveau dans numpy et j'essaie de vectoriser une simple boucle for pour des raisons de performance, mais je n'arrive pas à trouver de solution. J'ai un tableau numpy avec des mots uniques et pour chacun de ces mots j'ai besoin du nombre de fois qu'ils apparaissent dans un autre tableau numpy, appelé array_to_compare. Le nombre est passé à un troisième tableau numpy, qui a la même forme que le tableau de mots uniques. Voici le code qui contient la boucle for :
import numpy as np
unique_words = np.array(['a', 'b', 'c', 'd'])
array_to_compare = np.array(['a', 'b', 'a', 'd'])
vector_array = np.zeros(len(unique_words))
for word in np.nditer(unique_words):
counter = np.count_nonzero(array_to_compare == word)
vector_array[np.where(unique_words == word)] = counter
vector_array = [2. 1. 0. 1.] #the desired output
J'ai essayé avec np.where et np.isin, mais je n'ai pas obtenu le résultat souhaité. Je suis reconnaissant pour toute aide !