No puedo entender el ejemplo de matplotlib donde hay puntos suspensivos y dos puntos probablemente asociados con índices

Tengo una pregunta sobre esto matplotlib's ejemplo.

Aquí está la parte que no entiendo

def update_line(num, data, line):
    line.set_data(data[...,:num])
    return line,

¿Qué line.set_data(data[...,:num]) ¿hacer?

preguntado el 03 de mayo de 12 a las 08:05

2 Respuestas

Es una sintaxis especial proporcionada por numpy para dividir matrices multidimensionales. La sintaxis general es a[s1,s2, ... , sn], Donde si es la expresión utilizada para las secuencias de indexación o corte habituales y define el corte deseado en la i-ésima dimensión. Por ejemplo, a[5,2:3,1::2].

La ... es la manteca para obtener rebanadas completas en todas las dimensiones. Por ejemplo a[...,3] es la abreviatura de a[:,:,3] if a es tridimensional.

contestado el 11 de mayo de 12 a las 18:05

En realidad es un numpy notación. En numpy, ... (puntos suspensivos) se utiliza como marcador de posición para un número variable de : rodajas

Desde documentos:

Los puntos suspensivos se expanden al número de : objetos necesarios para hacer una tupla de selección de la misma longitud que x.ndim. Solo se expanden los primeros puntos suspensivos, los demás se interpretan como :.

Uso:

In : x = numpy.array(range(8)).reshape(2,2,2)

In : x
Out:
array([[[0, 1],
        [2, 3]],

       [[4, 5],
        [6, 7]]])

In : x[...,0]
Out:
array([[0, 2],
       [4, 6]])

In : x[:,:,0]
Out:
array([[0, 2],
       [4, 6]])

contestado el 03 de mayo de 12 a las 08:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.