lambda
x が 0 の場合、x に 1 を加算する a を使用したいと思います。私は次の表現を試しました:
t = map(lambda x: x+1 if x==0 else x, numpy.array())
t = map(lambda x: x==0 and x+1 or x, numpy.array())
t = numpy.apply_along_axis(lambda x: x+1 if x==0 else x, 0, numpy.array())
これらの各式は、次のエラーを返します。
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
とについての私の理解はmap()
、numpy.apply_along_axis()
何らかの関数を取り、それを配列の各値に適用するというものでした。エラーから、ラムダがx=array
配列内の値ではなく として評価されているようです。私は何を間違っていますか?
これを実現する関数を作成できることはわかっていますが、Python の関数型プログラミングの側面にもっと慣れたいと思っています。