tf[:,[91,1063]])[[0,3,4],:]
działa w 2 etapach, najpierw wybierając 2 kolumn, a następnie 3 wiersze z tego wyniku
tf[[0,3,4],[91,1063]]
próbuje wybrać tf[0,91]
, tf[3,1063]
i ft[4, oops]
.
tf[[[0],[3],[4]], [91,1063]]
powinien działać, dając taki sam wynik, jak w pierwszym wyrażeniu. pomyśl o tym, że pierwsza lista jest kolumną, wybierając wiersze.
tf[np.array([0,3,4])[:,newaxis], [91,1063]]
jest inny sposób wytwarzania tej tablicy indeks kolumny
tf[np.ix_([0,3,4],[91,1063])]
np.ix_
mogą pomagać w tworzeniu tych tablic indeksu.
In [140]: np.ix_([0,3,4],[91,1063])
Out[140]:
(array([[0],
[3],
[4]]), array([[ 91, 1063]]))
te macierze kolumn i wierszy są transmitowane razem produkować 2d tablicy współrzędnych
[[(0,91), (0,1063)]
[(3,91), ... ]
.... ]]
Jest odpowiednia część docs: http://docs.scipy.org/doc/numpy/reference/arrays.indexing.html#purely-integer-array-indexing
Ja w zasadzie powtórzenie moją odpowiedź to Composite Index updates for Numpy Matrices
Mam to dzięki. – user1019129