È possibile utilizzare la funzione slice e chiamarlo con il elenco delle variabili appropriato durante il runtime nel modo seguente:
# Store the variables that represent the slice in a list/tuple
# Make a slice with the unzipped tuple using the slice() command
# Use the slice on your array
Esempio:
>>> from numpy import *
>>> a = (1, 2, 3)
>>> b = arange(27).reshape(3, 3, 3)
>>> s = slice(*a)
>>> b[s]
array([[[ 9, 10, 11],
[12, 13, 14],
[15, 16, 17]]])
Questa è la stessa:
>>> b[1:2:3]
array([[[ 9, 10, 11],
[12, 13, 14],
[15, 16, 17]]])
Infine, l'equivalente di non specificare nulla tra 2 :
nella consueta notazione è di mettere None
in quei luoghi nella tupla si creare.
L'indicizzazione nel formato 'x [qualcosa]' è sinonimo di chiamata del metodo '__getitem__' dell'oggetto. Ad esempio, il tuo codice precedente equivale a passare la tupla '(slice (None), slice (None), slice (None), slice (None), j, slice (None))' a 'x .__ getitem __()' . –
@JoelCornett: Perché dovresti usare '__getitem __()' per questo? Qual è il vantaggio rispetto a '[]'? –
@SvenMarnach: Non vorrei, ho solo sentito che l'OP trarrebbe beneficio dalla comprensione di questo concetto. La risposta alla sua domanda è banale, se si rende conto che è solo questione di passare argomenti a una funzione. –