错误信息:AttributeError: module ‘numpy’ has no attribute ‘flip’
我不明白为什么它会给我这个错误,我用谷歌搜索并确保我使用的是最新版本的 numpy。我的工作目录中绝对没有另一个名为 numpy 的文件。任何帮助将不胜感激!
原文由 user428487 发布,翻译遵循 CC BY-SA 4.0 许可协议
错误信息:AttributeError: module ‘numpy’ has no attribute ‘flip’
我不明白为什么它会给我这个错误,我用谷歌搜索并确保我使用的是最新版本的 numpy。我的工作目录中绝对没有另一个名为 numpy 的文件。任何帮助将不胜感激!
原文由 user428487 发布,翻译遵循 CC BY-SA 4.0 许可协议
是的, flip
是新的,但没有任何神奇之处。这是代码:
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)]
该操作的实质是它使用 ::-1
的一个或多个实例(即 slice(None,None,-1)
)为您的数组编制索引。 flipud/lr
做同样的事情。
有了这个 x
, flip
做:
In [826]: np.array([1,2,3])[::-1]
Out[826]: array([3, 2, 1])
原文由 hpaulj 发布,翻译遵循 CC BY-SA 3.0 许可协议
4 回答4.5k 阅读✓ 已解决
1 回答3.4k 阅读✓ 已解决
4 回答3.9k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
2 回答463 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
np.flip
已针对 v.1.12.0 及更高版本引入。对于旧版本,您可以考虑使用np.fliplr
和np.flipud
。或者,使用
pip install --user --upgrade numpy
升级您的 numpy 版本。