Я не смог найти здесь ответа, поэтому надеюсь, что вы, ребята, сможете помочь. Мы все знаем, что мы не должны перебирать массив в python, потому что это занимает так много времени, поэтому я хочу векторизовать его. Сначала операция: Моя операция должна сравнить два одномерных распределения:
from pyemd import emd
def vectoriztaion(a=np.ones(25),b=np.ones(25)):
value = pyemd.emd(np.array(a), np.array(b), helper.get_distance_matrix())
return value
Как вы можете видеть, входные данные a и b являются np.arrays формы (25). Теперь я планировал использовать функцию np.vectorize
vfunc = np.vectorize(vectoriztaion)
result = vfunc(A,B)
, где A и B - оба np.array формы (N, 25). Я хочу, чтобы код возвращал np.array формы (N).
Запуск кода дает мне эту ошибку:
ValueError: Buffer has wrong number of dimensions (expected 1, got 0)
Если вы видели подобный вопрос или если вы знаетекак я могу запустить код. Пожалуйста, дайте мне знать.
Заранее спасибо