pythonにおける任意のネスト数のループ処理について
以下のような関数を作成したいと思っているのですが、任意の回数ループ処理を行う方法についてご教示賜りたいと存じます。
1.引数として、①任意の次元数のnumpy配列、②各次元に対応する処理を行う関数の2つをとる。
②すべての配列要素に対して処理を行う。ただし、その処理は引数として指定した関数に基づく。
この時、任意の回数のネストした処理の作成方法がわかりません。
例えば4次元配列なら、汚いですが
x = NDARRAY.shape
for i in range(x[0]):
for j in range(x[1]):
for k in range(x[2]):
for l in range(x[3]):
とでもできますが、一般にn次元の時、どのようにすればよいでしょうか。
メタプログラミングの知識は必要でしょうか。