次のように、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.sinas 、 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
これは標準/正しい方法ですか?