‘lista’ objeto no tiene atributo ‘forma’

¿Cómo crear una matriz para numpy matriz?

def test(X, N): [n,T] = X.shape print "n : ", n print "T : ", T if __name__=="__main__": X = [[[-9.035250067710876], [7.453250169754028], [33.34074878692627]], [[-6.63700008392334], [5.132999956607819], [31.66075038909912]], [[-5.1272499561309814], [8.251499891281128], [30.925999641418457]]] N = 200 test(X, N) 

Estoy recibiendo error como

 AttributeError: 'list' object has no attribute 'shape' 

Entonces, ¿creo que necesito convertir mi X a una matriz numpy?

Use numpy.array para usar el atributo de shape .

 >>> import numpy as np >>> X = np.array([ ... [[-9.035250067710876], [7.453250169754028], [33.34074878692627]], ... [[-6.63700008392334], [5.132999956607819], [31.66075038909912]], ... [[-5.1272499561309814], [8.251499891281128], [30.925999641418457]] ... ]) >>> X.shape (3L, 3L, 1L) 

NOTA X.shape devuelve la tupla de 3 elementos para la matriz dada; [n, T] = X.shape genera ValueError .

 import numpy X = numpy.array(the_big_nested_list_you_had) 

Todavía no va a hacer lo que quieres; tiene más errores, como intentar desempaquetar una forma tridimensional en dos variables objective en la test .

Alternativamente, puedes usar np.shape(...)

Por ejemplo:

import numpy as np

a=[1,2,3]

y np.shape(a) dará una salida de (3,)

El objeto de lista en Python no tiene el atributo ‘forma’ porque ‘forma’ implica que todas las columnas (o filas) tienen la misma longitud en cierta dimensión.

Digamos que la variable de lista a tiene las siguientes propiedades: a = [[2, 3, 4] [0, 1] [87, 8, 1]]

es imposible definir ‘forma’ para la variable ‘a’. Es por eso que la “forma” se puede determinar solo con “arreglos”, por ejemplo

 b = numpy.array([[2, 3, 4] [0, 1, 22] [87, 8, 1]]) 

Espero que esta explicación aclare bien esta pregunta.

Si tiene la lista, puede imprimir su forma como si se convirtiera a matriz

 import numpy as np print(np.asarray(X).shape) 

si el tipo es list, use len (list) y len (list [0]) para obtener la fila y la columna.

 l = [[1,2,3,4], [0,1,3,4]] 

len (l) será 2 len (l [0]) será 4

En primer lugar, tiene que importar una biblioteca numpy (consulte el código para hacer una matriz numpy). La shape solo da la salida solo si la variable es un atributo de la biblioteca numpy. En otras palabras, debe ser un np.array o cualquier otra estructura de datos de numpy. P.ej.

 `>>> import numpy >>> a=numpy.array([[1,1],[1,1]]) >>> a.shape (2, 2)`