Ho notato un comportamento confuso durante l'indicizzazione di una matrice numerica piatta con un elenco di tuple (utilizzando python 2.7.8 e numpy 1.9.1). La mia ipotesi è che questo è legato al numero massimo di dimensioni dell'array (che credo sia 32), ma non sono stato in grado di trovare la documentazione.Strano comportamento della tupla indicizzazione di una matrice numpy
>>> a = np.arange(100)
>>> tuple_index = [(i,) for i in a]
>>> a[tuple_index] # This works (but maybe it shouldn't)
>>> a[tuple_index[:32]] # This works too
>>> a[tuple_index[:31]] # This breaks for 2 <= i < 32
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: too many indices for array
>>> a[tuple_index[:1]] # This also works...
L'elenco di tuple viene "appiattito" se è 32 elementi o più grande? Questo è documentato da qualche parte?
Interessante, viene visualizzato un messaggio di errore diverso: "IndexError: indice iteratore non supportato". Usando python 2.7 e numpy 1.8.2 – swenzel
Spiacente, avrei dovuto specificare le versioni (python 2.7.8; numpy 1.9.1). Ho aggiornato la domanda. – kadrlica