Numpy: применить np.vectorize к массивам с dtype = object - PullRequest
1 голос
/ 07 мая 2019

У меня есть массив с некоторыми круговыми данными. Я хочу заменить каждую из этих данных с плавающей точкой на вектор значений косинуса и синуса. Чтобы отобразить это, я преобразовал массив как 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...