AttributeError: module 'numpy' has no attr

2020-07-11 18:16发布

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!

3条回答
倾城 Initia
2楼-- · 2020-07-11 18:52

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.

查看更多
Ridiculous、
3楼-- · 2020-07-11 18:56

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])
查看更多
冷血范
4楼-- · 2020-07-11 18:59

One can reshape 1-D array apply fliplr and then get 1-D array back. That is possible to go from 1-D x to 2-D by using, e.g. x.reshape(1,x.size) or [x].

x = np.arange(5)
print(x)
x = np.fliplr([x])[0];  # fliplr works with at least 2-D arrays
print(x)

[0 1 2 3 4]
[4 3 2 1 0]

查看更多
登录 后发表回答