可以将此函数写得更短吗?我最终在代码中做了很多
def smartInt(x):
if (type(x) == np.ndarray):
return x.astype(int)
else:
return int(x)
答案 0 :(得分:3)
如果您可以使用numpy标量(例如np.int_
而不是int
,那么您可以这样做
np.asanyarray(x, int)[()]
甚至
np.int_(x)
答案 1 :(得分:1)
这在行数方面并不短,但是try
/ except
可能比显式类型检查更有效:
def smartInt(x):
try:
return int(x)
except TypeError:
return x.astype(int)
如果更可能是数组,则输入:
def smartInt(x):
try:
return x.astype(int)
except AttributeError:
return int(x)