Solución rápida: compruebe la propiedad .ndim; si es 2, la propiedad .shape funcionará como esperaba.
Motivo Por qué: si la propiedad .ndim es 2, entonces numpy informa un valor de forma que coincide con la convención. Si la propiedad .ndim es 1, entonces numpy simplemente informa la forma de una manera diferente.
Más información: Cuando pase np.array una lista de listas, la propiedad .shape coincidirá con las nociones estándar de las dimensiones de una matriz: (filas, columnas).
Si pasa np.array solo por una lista, entonces numpy no cree que tenga una matriz en sus manos, e informa la forma de una manera diferente.
La pregunta es: ¿numpy piensa que tiene una matriz, o cree que tiene algo más en sus manos.
Otros pueden preguntar al revés, por lo que creo que deberías decir por qué esperas más tarde. – hakre
Usted puede estar pensando en matlab, pero verifique la diferencia entre 'matriz' y' matriz', en numpy, las matrices son preferibles. – seberg
@hakre Realmente no veo ninguna diferencia (en la vida real) entre una lista (horizontal) y una matriz de 1 xn, así que esperaba que la forma de la matriz simple fuera 1 xn, y también esperaba d = [1 , 2] y no [[1, 2]], pero tiene su propio tipo de lógica una vez que ve lo que está sucediendo. – user1710403