numpy 配列の各要素を配列自体に変換しようとしています (たとえば、グレースケール画像をカラー画像として解釈するため)。言い換えると:
>>> my_ar = numpy.array((0,5,10))
[0, 5, 10]
>>> transformed = my_fun(my_ar) # In reality, my_fun() would do something more useful
array([
[ 0, 0, 0],
[ 5, 10, 15],
[10, 20, 30]])
>>> transformed.shape
(3, 3)
私はもう試した:
def my_fun_e(val):
return numpy.array((val, val*2, val*3))
my_fun = numpy.frompyfunc(my_fun_e, 1, 3)
しかし、得る:
my_fun(my_ar)
(array([[0 0 0], [ 5 10 15], [10 20 30]], dtype=object), array([None, None, None], dtype=object), array([None, None, None], dtype=object))
そして私は試しました:
my_fun = numpy.frompyfunc(my_fun_e, 1, 1)
しかし、得る:
>>> my_fun(my_ar)
array([[0 0 0], [ 5 10 15], [10 20 30]], dtype=object)
これは近いですが、正確ではありません。int の配列ではなく、オブジェクトの配列を取得します。
アップデート3!わかった。私の例は前もって単純すぎることに気付きました。データを 3 次元で複製するだけでなく、同時に変換したいのです。多分これはより明確ですか?