3

次のように、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

これは標準/正しい方法ですか?

4

1 に答える 1

2

を探していると思いますnp.atleast_1d

>>> np.atleast_1d(5)
array([5])
>>> np.atleast_1d(np.arange(2))
array([0, 1])
于 2013-09-13T12:07:43.900 に答える