簡體   English   中英

將浮點數重載到numpy數組

[英]overloading a float to a numpy array

我有一個函數,處理一維numpy數組,如下所示:

def f(arr):
    arr=asarray(arr)
    #process data as numpy array
    #...
    return arr

使用asarray我允許使用列表調用函數f([4,5,6]) 現在,我想將參數“重載”到一個浮點數,這樣我就可以用f(4)代替f([4])

這是一個標准的numpy特性,因為你可以將np.sin稱為sin(array([4,5,6])) ,或者作為sin([4,5,6])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

這是標准/正確的方法嗎?

我相信你在尋找np.atleast_1d

>>> np.atleast_1d(5)
array([5])
>>> np.atleast_1d(np.arange(2))
array([0, 1])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM