Я борюсь с этим фрагментом кода, используя np.vectorize
def to_homogenous(x):
'''
Convert a point x to homogenous coordinates.
'''
return np.hstack((x,np.array([1]))).flatten()
vec_to_homo = np.vectorize(to_homogenous)
coords = vec_to_homo([0,1])
Это приводит к следующей ошибке:
ValueErrorTraceback (самая последняяпоследний вызов)
in ()
----> 1 ords1 = vec_to_homo ([0,1])
/ home / lib / python2.7 / site-packages / numpy / lib/function_base.pyc в call (self, * args, ** kwargs)
2753 vargs.extend ([kwargs [_n] для _n в именах])
2754
->2755 return self._vectorize_call (func = func, args = vargs)
2756
2757 def _get_ufunc_and_otypes (self, func, args):
/ home / lib / python2.7 / site-packages/numpy/lib/function_base.pyc в _vectorize_call (self, func, args)
2832
2833, если ufunc.nout == 1:
-> 2834 res = массив (выводы, copy = False, subok= True, dtype = otypes [0])
2835, остальное:
2836 res = кортеж ([array (x, copy = False, subok = True, dtype = t)
ValueError: settingэлемент массива с последовательностью.
Я понимаю сообщение об ошибке, но яне могу за всю жизнь найти, как я должен изменить свою функцию / вызов векторизации для решения этой проблемы.Функция дает правильные результаты, если я передаю только одно целое число, то есть vec_to_homo(0)
дает [0,1]
.
Мой фрагмент очень близок к примеру, приведенному в документации, указанной выше, поэтому я действительно не получаючто идет не так.
Пожалуйста, помогите.
Спасибо!