Gibt es eine optimale Möglichkeit, jede Zeile einer Matrix in Numpy (oder Theano) durch einen Schritt von N, gegebenen Startindex für jede Spalte zu schneiden?Slice-Matrix in Numpy (oder Theano)
beispielsweise in der Matrix A unten für jede Zeile beginnend slice Index wird in der ersten Spalte angegeben, und die für eine Zeile i
, möchte ich A[i, A[0]:A[0]+stride]
A = [[1, 1, 2, 3, 4, 5, 6],
[1, 11, 12, 13, 14, 15, 16],
[3, 22, 23, 24, 25, 26, 27]]
stride = 2
Desired output:
[[ 1. 2. 3.]
[ 11. 12. 13.]
[ 24. 25. 26.]]
I den Code versucht haben:
b = [range(A.shape[0]), A[:, 0]]
c = [range(A.shape[0]), A[:, 0] + stride]
A[b:c]
aber ich habe den folgenden Fehler:
IndexError: failed to coerce slice entry of type list to integer
der Fehler bedeutet, daß das 'b: c ' Die Slice-Notation arbeitet mit Ganzzahlen, nicht mit Listen. Sie müssen also entweder jede Zeile trennen und sie verbinden oder ein Indexierungs-Array erstellen, das auf das gesamte Array gleichzeitig wirkt. – hpaulj