Я хотел бы получить матрицу значений, заданных двумя ndarray
из ufunc
, например:
degs = numpy.array(range(5))
pnts = numpy.array([0.0, 0.1, 0.2])
values = scipy.special.eval_chebyt(degs, pnts)
Приведенный выше код не работает (он дает ValueError
потому что он пытается транслировать два массива и терпит неудачу, поскольку они имеют разные формы: (5,) и (3,));Я хотел бы получить матрицу значений со строками, соответствующими градусам, и столбцами для точек, в которых оцениваются полиномы (или наоборот, это не имеет значения).
В настоящее время мой обходной путь заключается в простом использовании for
-loop:
values = numpy.zeros((5,3))
for j in range(5):
values[j] = scipy.special.eval_chebyt(j, pnts)
Есть ли способ сделать это?В общем, как вы могли бы сообщить ufunc
, что вам нужен n
-мерный массив, если у вас есть n
аргументы в виде массива?
Я знаю о numpy.vectorize
, но это кажется ни быстрее, ни большеэлегантнее, чем простой for
-петл (и я даже не уверен, что вы можете применить его к существующему ufunc
).
ОБНОВЛЕНИЕ Как насчет ufunc
что получить 3 или более параметров?Попытка outer
метод дает ValueError: outer product only supported for binary functions
.Например, scipy.special.eval_jacobi
.