numpy IndexError: zu viele Indizes für das array, wenn die Indizierung der matrix mit anderen

Ich habe eine matrix a, die ich erstellen, wie diese:

>>> a = np.matrix("1 2 3; 4 5 6; 7 8 9; 10 11 12")

Ich habe eine matrix die Etiketten, die ich erstellen, wie diese:

>>> labels = np.matrix("1;0;1;1")

Dies ist, was die beiden matricies 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 wählen Sie alle Spalten, ist es kein problem

>>> a[labels == 1, :]
matrix([[ 1,  7, 10]])

Aber wenn ich versuche eine Spalte angeben, bekomme ich eine Fehlermeldung

>>> 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 das so ist?
Ich bin bewusst, dass es ähnliche Fragen zu diesem schon, aber keiner von Ihnen erklären, mein problem gut genug, weder sind die Antworten hilfreich für mich.

  • Etiketten, 2-d, aber der index verwendet, als ob es 1-d.
  • Tatsächlich, die erste Indizierung ist falsch, auch mit numpy >=1.8. erhalten Sie die gleichen Fehler gibt es auch.
InformationsquelleAutor lilroo | 2013-11-23
Schreibe einen Kommentar