diferença entre numpy dot () e inner ()

Qual é a diferença entre

import numpy as np
np.dot(a,b)

e

import numpy as np
np.inner(a,b)

Todos os exemplos que tentei retornaram o mesmo resultado.Wikipedia tem o mesmo artigo para ambos ?! Ema descrição doinner() Ele diz que seu comportamento é diferente em dimensões mais altas, mas não consegui produzir nenhuma saída diferente. Qual deles devo usar?