Reamostrar uma matriz numpy

É fácil reamostrar uma matriz como

 a = numpy.array([1,2,3,4,5,6,7,8,9,10])

com um inteirofator de reamostragem. Por exemplo, com um fator 2:

b = a[::2]    # [1 3 5 7 9]

Mas com um fator de reamostragem não inteiro, ele não funciona tão facilmente:

c = a[::1.5]    # [1 2 3 4 5 6 7 8 9 10]  => not what is needed...

Deve ser (com interpolação linear):

[1 2.5 4 5.5 7 8.5 10]

ou (pegando o vizinho mais próximo na matriz)

[1 3 4 6 7 9 10]

Como reamostrar uma matriz numpy com um fator de reamostragem não inteiro?

Exemplo de aplicação: reamostragem / repetição do sinal de áudio

questionAnswers(4)

yourAnswerToTheQuestion