Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

AttributeError: module 'numpy' has no attribute 'flip'

enter image description here

Error message: AttributeError: module 'numpy' has no attribute 'flip'

I can't understand why it's giving me this error, I've googled and made sure I'm up to the latest version of numpy. I definitely don't have another file called numpy in my working directory. Any help would be greatly appreciated!

like image 323
user428487 Avatar asked Aug 16 '17 06:08

user428487


2 Answers

np.flip has been introduced for versions v.1.12.0 and beyond. For older versions, you can consider using np.fliplr and np.flipud.

Alternatively, upgrade your numpy version using pip install --user --upgrade numpy.

like image 113
cs95 Avatar answered Sep 18 '22 13:09

cs95


Yes,flip is new, but there isn't anything magical about it. Here's the code:

def flip(m, axis):
    if not hasattr(m, 'ndim'):
        m = asarray(m)
    indexer = [slice(None)] * m.ndim
    try:
        indexer[axis] = slice(None, None, -1)
    except IndexError:
        raise ValueError("axis=%i is invalid for the %i-dimensional input array"
                         % (axis, m.ndim))
    return m[tuple(indexer)]

The essence of the action is that it indexes your array with one or more instances of ::-1 (the slice(None,None,-1)). flipud/lr do the same thing.

With this x, flip does:

In [826]: np.array([1,2,3])[::-1]
Out[826]: array([3, 2, 1])
like image 31
hpaulj Avatar answered Sep 18 '22 13:09

hpaulj