Message d'erreur: AttributeError: le module 'numpy' n'a pas d'attribut 'flip'
Je ne comprends pas pourquoi cela me donne cette erreur, j'ai googlé et me suis assuré d'être à la dernière version de numpy. Je n'ai définitivement pas d'autre fichier appelé numpy dans mon répertoire de travail. Toute aide serait grandement appréciée!
Oui, flip
est nouveau, mais cela n’a rien de magique. Voici le 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)]
L'essence de l'action consiste à indexer votre tableau avec une ou plusieurs instances de ::-1
(la slice(None,None,-1)
). flipud/lr
faire la même chose.
Avec cette x
, flip
fait:
In [826]: np.array([1,2,3])[::-1]
Out[826]: array([3, 2, 1])
On peut refaçonner un tableau 1-D, appliquer fliplr
puis récupérer un tableau 1-D Il est possible de passer de 1-D x
à 2-D en utilisant, par exemple, x.reshape(1,x.size)
ou [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]