错误讯息: AttributeError:module' numpy'没有属性'翻转'
我无法理解为什么它会给我这个错误,我已经用Google搜索并确保我能够使用最新版本的numpy。我绝对没有在我的工作目录中有另一个名为numpy的文件。任何帮助将不胜感激!
答案 0 :(得分:10)
np.flip
已针对v.1.12.0及更高版本引入。对于旧版本,您可以考虑使用np.fliplr
和np.flipud
。
或者,使用pip install --user --upgrade numpy
升级您的numpy版本。
答案 1 :(得分:4)
是的,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])
答案 2 :(得分:0)
可以重塑一维数组,应用fliplr
,然后恢复一维数组。通过使用例如,可以从一维x
到二维。 x.reshape(1,x.size)
或[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]