Ich bin verrückt geworden, um herauszufinden, was für eine dumme Sache ich hier falsch mache.
Ich verwende NumPy und habe bestimmte Zeilenindizes und bestimmte Spaltenindizes, aus denen ich auswählen möchte. Hier ist der Kern meines Problems:
import numpy as np
a = np.arange(20).reshape((5,4))
# array([[ 0, 1, 2, 3],
# [ 4, 5, 6, 7],
# [ 8, 9, 10, 11],
# [12, 13, 14, 15],
# [16, 17, 18, 19]])
# If I select certain rows, it works
print a[[0, 1, 3], :]
# array([[ 0, 1, 2, 3],
# [ 4, 5, 6, 7],
# [12, 13, 14, 15]])
# If I select certain rows and a single column, it works
print a[[0, 1, 3], 2]
# array([ 2, 6, 14])
# But if I select certain rows AND certain columns, it fails
print a[[0,1,3], [0,2]]
# Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
# ValueError: shape mismatch: objects cannot be broadcast to a single shape
Warum passiert dies? Sicherlich sollte ich in der Lage sein, die 1., 2. und 4. Zeile sowie die 1. und 3. Spalte auszuwählen? Das erwartete Ergebnis ist:
a[[0,1,3], [0,2]] => [[0, 2],
[4, 6],
[12, 14]]