我想写一个函数来接受一个数值参数x
,这个参数可以是无大小的,比如说x = 1
或大小,一个列表,元组或 ndarray,比如说x = np.array([1,2])
。有没有一种很好的方法来编写处理这两种情况的代码?
作为一个具体的例子,假设目标是广播x
到一个数组(预定义的形状xshape
),如果x
只是一个数字,如果x
是一个形状错误的数组,则返回一个错误。
import numpy as np
import sys
if np.shape(np.atleast_1d(x)) == (1,):
x = np.ones(xshape) * x
elif np.shape(x) != xshape:
sys.exit("wrong shape for x")
上面的代码似乎工作,除了嵌套困难x = [[2]]
。它似乎也违背了一些推荐的做法,例如try / except
. 任何建议表示赞赏。