Обычный способ убедиться, что вход является массивом NumPy, это использовать np.asarray()
:
import numpy as np
def func(a):
a = np.asarray(a)
return np.sum(a)
func(1.2)
# 1.2
func([1.2, 3.4])
# 4.6
func(np.array([1.2, 3.4]))
# 4.6
или, если вы хотите получить len()
вашего массива, убедитесь, что он равеннаименее одномерный, используйте np.atleast_1d()
:
def func(a):
a = np.atleast_1d(a)
return a.shape[0]
func(1.2)
# 1
func([1.2, 3.4])
# 2
func(np.array([1.2, 3.4]))
# 2