Rotar matriz 2D numpy

Tengo un conjunto de imágenes en escala de grises como matrices numpy 2D.

Necesito rotar las imágenes sobre un punto (dentro de ellas) de diferentes ángulos de flotación. La rotación no necesita estar en su lugar, y permitiré (por supuesto, si lo he explicado bien hasta ahora) la interpolación.

Me gustaría permanecer en numpy, ya que necesito realizar operaciones numéricas en el resultado, pero también puedo (si eso es imposible) permitir un paso de entrada / salida; por ejemplo, intenté usar PIL, es decir, Image.rotate (theta) pero no entiendo cómo aplicar eso a mis matrices y cómo recuperar una matriz.

Gracias por su aporte

Respuestas a la pregunta(3)

Su respuesta a la pregunta