@fluex: Nein als inbegriffen würde ich das nicht bezeichnen, auch wenn vieles was in `math` für Skalare definiert ist, in `numpy` für Arrays (und Skalare) vorhanden ist. Aber nicht alles. Schauen wir mal was in `math` an Namen definiert ist und verwenden dann Mengenoperationen um herauszufinden welche Namen davon in `numpy` nicht vorhanden sind:
Code: Alles auswählen
In [665]: dir(math)
Out[665]:
['__doc__',
'__name__',
'__package__',
'acos',
'acosh',
'asin',
'asinh',
'atan',
'atan2',
'atanh',
'ceil',
'copysign',
'cos',
'cosh',
'degrees',
'e',
'exp',
'fabs',
'factorial',
'floor',
'fmod',
'frexp',
'fsum',
'hypot',
'isinf',
'isnan',
'ldexp',
'log',
'log10',
'log1p',
'modf',
'pi',
'pow',
'radians',
'sin',
'sinh',
'sqrt',
'tan',
'tanh',
'trunc']
In [666]: set(dir(math)) - set(dir(numpy))
Out[666]:
set(['acos',
'acosh',
'asin',
'asinh',
'atan',
'atan2',
'atanh',
'copysign',
'factorial',
'fsum',
'pow'])
Zumindest unter diesen Namen sind die Funktionen nicht in `numpy` enthalten.
Die `numpy`-Funktionen liefern auch bei Skalaren als Argumenten einen anderen Typ als Ergebnis. Das kann in bestimmten Situationen zu subtil unterschiedlichem Verhalten führen:
Code: Alles auswählen
In [668]: type(math.sin(42.0))
Out[668]: <type 'float'>
In [669]: type(numpy.sin(42.0))
Out[669]: <type 'numpy.float64'>
In [670]: math.sin(42.0) * [1, 2, 3]
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
/home/bj/<ipython console> in <module>()
TypeError: can't multiply sequence by non-int of type 'float'
In [671]: numpy.sin(42.0) * [1, 2, 3]
Out[671]: []
Ich würde `numpy` nur verwenden, wenn es auch wirklich um Arrays geht.
Zur weiteren Frage: Was ist „in diesem Fall”? Um welchen Quelltext geht es und womit wird der ausgeführt. Der Traceback hat was mit Threads und Socket-Kommunikation zu tun, die wahrscheinlich nicht Bestandteil Deines Programms sind und auch nicht ins Spiel kommen, wenn Du Deinen Code einfach mit Python ausführst. Kann es sein dass Du eine spezielle IDE verwendest, von der dieser Fehler kommt?