Ich habe eine Matrix A, die I wie folgt zu erstellen:numpy Indexerror: zu viele Indizes für Array, wenn Indizieren Matrix mit einem anderen
>>> a = np.matrix("1 2 3; 4 5 6; 7 8 9; 10 11 12")
Ich habe eine Matrix Etiketten, die ich so erstellen:
>>> labels = np.matrix("1;0;1;1")
Diese
ist das, was die beiden Matrizes wie folgt aussehen:
>>> a
matrix([[ 1, 2, 3],
[ 4, 5, 6],
[ 7, 8, 9],
[10, 11, 12]])
>>> labels
matrix([[1],
[0],
[1],
[1]])
wie Sie sehen können, wenn ich alle Spalten auswählen, gibt es keine p roblem
>>> a[labels == 1, :]
matrix([[ 1, 7, 10]])
Aber wenn ich versuche, eine Spalte I ein Fehler
>>> a[labels == 1, 1]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/site-packages/numpy/matrixlib/defmatrix.py", line 305, in __getitem__
out = N.ndarray.__getitem__(self, index)
IndexError: too many indices for array
>>>
Weiß jemand, warum dies bekommen angeben? Ich bin mir bewusst, dass es bereits ähnliche Fragen gibt, aber keine von ihnen erklärt mein Problem gut genug, noch sind die Antworten hilfreich für mich.
Etiketten 2-d, aber der Index verwendet es, als ob es war 1-d. – seberg
Eigentlich ist auch die erste Indizierung falsch, mit numpy> = 1.8. Sie werden den gleichen Fehler auch dort bekommen. – seberg