我有一个函数,处理一维 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
as sin(array([4,5,6]))
、 assin([4,5,6])
或 as 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
这是标准/正确的方法吗?