[英]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.