Error de remodelación de numpy de Python

Estoy encontrando un error extraño al intentar remodelar una matriz numpy 3D.

La matriz (x) tiene la forma (6, 10, 300) y quiero cambiarla a (6, 3000).

Estoy usando el siguiente código:

reshapedArray = np.reshape(x, (x.shape[0], x.shape[1]*x.shape[2])) 

El error que estoy recibiendo es:

 TypeError: only integer scalar arrays can be converted to a scalar index 

Sin embargo, si convierto x en una lista, funciona:

     x = x.tolist() reshapedArray = np.reshape(x, (len(x), len(x[0])*len(x[0][0]))) 

    ¿Tienes alguna idea de por qué esto podría ser?

    ¡Gracias por adelantado!

    Editar:

    Este es el código que estoy ejecutando y que produce el error.

     x = np.stack(dataframe.as_matrix(columns=['x']).ravel()) print("OUTPUT:") print(type(x), x.dtype, x.shape) print("----------") x = np.reshape(x, (x.shape[0], x.shape[1]*x[2])) OUTPUT:  float64 (6, 10, 300) ---------- TypeError: only integer scalar arrays can be converted to a scalar index 

    La excepción solo debería ocurrir si un elemento del segundo argumento para la reshape no es un entero, por ejemplo:

     >>> x = np.ones((6, 10, 300)) >>> np.reshape(x, (np.array(x.shape[0], dtype=float), x.shape[1]*x.shape[2])) TypeError: only integer scalar arrays can be converted to a scalar index 

    o si es una array (dado el historial de edición: eso fue lo que sucedió en su caso):

     >>> np.reshape(x, (x.shape[0], x.shape[1]*x[2])) # forgot to access the shape------^^^^ TypeError: only integer scalar arrays can be converted to a scalar index 

    Sin embargo, parece funcionar con la solución que también hace que sea mucho más difícil confundir algo por error:

     >>> np.reshape(x, (x.shape[0], -1)) 

    En caso de que te preguntes por el -1 los documentos lo explican:

    Una dimensión de forma puede ser -1. En este caso, el valor se infiere a partir de la longitud de la matriz y las dimensiones restantes.