pourquoi n'est pas numpy.mean multithread?

J'ai été la recherche de moyens pour facilement multithread certains de mes simples d'analyse de code car j'avais remarqué numpy c'est seulement à l'aide de l'un de base, malgré le fait qu'il est censé être multithread.

Je sais que numpy est configuré pour plusieurs cœurs, car je peux voir les tests à l'aide de numpy.dot d'utiliser tous mes cœurs, donc, je viens de ré-implémenté dire comme un produit scalaire, et il s'exécute plus rapidement. Est-il une raison de dire ne peut pas exécuter cette rapide sur son propre? J'ai trouver un comportement similaire pour les grandes baies, bien que le ratio est proche de 2 que de 3 montré dans mon exemple.

J'ai lu un tas de posts similaires numpy des problèmes de vitesse, et apparemment son chemin plus compliqué que je ne l'aurais pensé. Aucune information serait utile, je préfère utiliser la moyenne car c'est plus lisible et moins de code, mais j'ai peut passer à point.

In [27]: data = numpy.random.rand(10,10)

In [28]: a = numpy.ones(10)

In [29]: %timeit numpy.dot(data,a)/10.0
100000 loops, best of 3: 4.8 us per loop

In [30]: %timeit numpy.mean(data,axis=1)
100000 loops, best of 3: 14.8 us per loop

In [31]: numpy.dot(data,a)/10.0 - numpy.mean(data,axis=1)
Out[31]: 
array([  0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
         0.00000000e+00,   1.11022302e-16,   0.00000000e+00,
         0.00000000e+00,   0.00000000e+00,   0.00000000e+00,
        -1.11022302e-16])

source d'informationauteur gggg