D'abord, laissez-moi vous montrer la codez:fonction de mappage de tableau numpy, variation d'un paramètre
a = array([...])
for n in range(10000):
func_curry = functools.partial(func, y=n)
result = array(map(func_curry, a))
do_something_else(result)
...
Ce que je fais ici tente d'appliquer func
à un tableau, en changeant à chaque fois que la valeur du func
deuxième paramètre. C'est SLOOOOW (créer une nouvelle fonction à chaque itération n'aide certainement pas), et j'ai aussi l'impression d'avoir manqué la façon pythonique de le faire. Toute suggestion?
Est-ce qu'une solution qui me donne un tableau 2D pourrait être une bonne idée? Je ne sais pas, mais peut-être que c'est le cas.
Réponses aux questions possibles:
- Oui, cela est (en utilisant une définition large), un problème d'optimisation (
do_something_else()
cache ce) - Non, scipy.optimize n'a pas fonctionné parce que je suis traiter des valeurs booléennes et il ne semble jamais converger.
Que fait func? Si nous en savons plus sur ce qu'il fait, nous pouvons peut-être vous aider à trouver un moyen plus rapide de le faire. En ce moment, je pense que cette carte doit changer numpy array en une liste, la mapper, puis la liste est en train d'être changée en un tableau qui ne me semble pas rapide. Si nous pouvons trouver un moyen de faire func aux colonnes en utilisant des fonctions numpy, cela devrait être plus rapide. Je devine que vous appllez func sur chaque colonne de la matrice dans un, puis en utilisant le résultat pour se rapprocher de la bonne solution. Avez-vous profilé pour vous assurer que cette partie est le problème et non la partie do_something_else? –