o que faz a forma numpy ndarray?

Eu tenho uma pergunta simples sobre a função .shape, que me confundiu bastante.

a = np.array([1, 2, 3])   # Create a rank 1 array
print(type(a))            # Prints "<class 'numpy.ndarray'>"
print(a.shape)            # Prints "(3,)"

b = np.array([[1,2,3],[4,5,6]])    # Create a rank 2 array
print(b.shape)                     # Prints "(2, 3)"

O que a forma. Exatamente fez? conte quantas linhas, quantas colunas, então a a.shape deve ser, (1,3), uma linha três colunas, certo?