次のように、1D numpy 配列を処理する関数があります。
def f(arr):
arr=asarray(arr)
#process data as numpy array
#...
return arr
を使用asarray
すると、リストを使用して関数を呼び出すことができますf([4,5,6])
。ここで、引数を単一の float にも「オーバーロード」して、f(4)
代わりに使用できるようにしたいと思いますf([4])
。
np.sin
as 、 as sin(array([4,5,6]))
、または assin([4,5,6])
を呼び出すことができるため、これは標準的な numpy 機能ですsin(4)
。少なくとも単純なケースでは機能するこのコードを思いつきました。
def f(arr):
arr=asarray(arr)
if arr.shape is ():
print 'arr is a single float/int/etc'
arr = array([arr])
#process data as numpy array
#...
return arr
これは標準/正しい方法ですか?