У меня есть массив с некоторыми круговыми данными. Я хочу заменить каждую из этих данных с плавающей точкой на вектор значений косинуса и синуса.
Чтобы отобразить это, я преобразовал массив как dtype=object
и применил к нему векторизованную функцию.
Но возникает ошибка: ValueError: setting an array element with a sequence.
Вероятно, это ошибочная ошибка?
Вот пример кода для воспроизведения:
import numpy as np
# Define a random array 'a' with dtype 'object'.
a = np.pi * np.random.rand(3, 2).astype(object)
tmp = a[0, 0]
# No problem to set any list to 'a'.
a[0, 0] = [1, 1.5]
print(a)
# Reset 'a'.
a[0, 0] = tmp
print(a)
# Map a function on 'a' with np.vectorize.
vectorize = np.vectorize(lambda x: [np.cos(x), np.sin(x)])
vectorize(a) # <-- Value error will be raised.
print(a)