SciPy/NumPy import guideline

前端 未结 3 506
猫巷女王i
猫巷女王i 2021-02-08 09:10

Notice: I checked for duplicate and nothing clearly answers my question. I trust you\'ll let me know if I missed something!

In an effort to clean up my code, I have been

相关标签:
3条回答
  • 2021-02-08 09:57

    I recommend doing something like

    import numpy as np
    import scipy as sp
    

    instead. It is always dangerous to do from ... import * especially with large modules such as numpy and scipy. The following illustrates why:

    >>> any(['foo'])
    True
    >>> from scipy import *
    >>> any(['foo'])
    
    Traceback (most recent call last):
      File "<pyshell#2>", line 1, in <module>
         any(['foo'])
      File "C:\Python27\lib\site-packages\numpy\core\fromnumeric.py", line 1575, in any
        return _wrapit(a, 'any', axis, out)
      File "C:\Python27\lib\site-packages\numpy\core\fromnumeric.py", line 37, in _wrapit
        result = getattr(asarray(obj),method)(*args, **kwds)
    TypeError: cannot perform reduce with flexible type
    

    What happens here? The standard python builtin function any is replaced by scipy.any which has different behavior. That might break any code that uses the standard any.

    0 讨论(0)
  • 2021-02-08 09:57

    What about making classes and use just what you will need, fx: class one:

    import cv2
    from SIGBWindows import SIGBWindows
    from SIGBAssg import *
    

    class two:

    import cv2
    import numpy as np
    
    from pylab import *
    from scipy.cluster.vq import *
    from scipy.misc import imresize
    

    class three:

    import cv2
    import numpy as np
    

    and Finally where we call the object:

    import cv2
    from SIGBWindows import SIGBWindows
    from SIGBAssg import *
    
    windows = SIGBWindows(mode="video")
    windows.openVideo("somevideo.avi")
    kmeans(windows)
    

    I don't know if it is what you are looking for, but this approach it makes the code really clean and easy to add more features to it.

    0 讨论(0)
  • 2021-02-08 10:03

    This post has some good information about the two modules (Relationship between scipy and numpy). It seems that Numpy's functionality is meant to be completely included within Scipy, although there are a few exceptions (see post). I would say it is safe to simply use Scipy for all of your needs since most important things like mathematical functions, arrays, and other things are included within Scipy.

    0 讨论(0)
提交回复
热议问题