Usted puede utilizar la función slice y llamarlo con el lista de variables apropiadas durante el tiempo de ejecución de la siguiente manera:
# 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
Ejemplo:
>>> 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]]])
Esto es lo mismo que:
>>> b[1:2:3]
array([[[ 9, 10, 11],
[12, 13, 14],
[15, 16, 17]]])
Por último, el equivalente de no especificar nada entre 2 :
en la notación habitual es poner None
en aquellos lugares en la tupla se crear.
La indexación con el formato 'x [algo]' es sinónimo de llamar al método '__getitem__' del objeto. Por ejemplo, su código anterior es equivalente a pasar la tupla '(slice (None), slice (None), slice (None), slice (None), j, slice (None))' to 'x .__ getitem __()' . –
@JoelCornett: ¿Por qué usarías '__getitem __()' para esto? ¿Cuál es la ventaja sobre '[]'? –
@SvenMarnach: No lo haría, solo sentí que OP se beneficiaría de la comprensión de este concepto. La respuesta a su pregunta es trivial, si se da cuenta de que solo se trata de pasar argumentos a una función. –