Selectionner les lignes et les colonnes d'un tableau NumPy

J'ai été fou à essayer de comprendre ce stupide chose que je fais mal ici.

Je suis en utilisant NumPy, et j'ai des indices de ligne et de colonne spécifique indices que je veux choisir. Voici le résumé de mon problème:

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

Pourquoi est-ce arrivé? Certes, je devrait être en mesure de sélectionner les 1er, 2e et 4e lignes, et les 1er et 3ème colonnes? Le résultat que j'attends est:

a[[0,1,3], [0,2]] => [[0,  2],
                      [4,  6],
                      [12, 14]]
InformationsquelleAutor Mike C | 2014-04-08