Предположим, у меня есть выражение, включающее модуль decimal
, в котором я хочу ввести несколько значений и получить несколько значений.
a=np.array([1,2,3])
b=np.array([4,5,6])
A=a.astype(object)
B=b.astype(object)
getcontext().prec = 100
x=Decimal(A+B)
Это вызывает ошибку, поскольку Decimal
несовместимо с numpy
массивы.
Как я могу передать несколько значений через выражение Decimal
и получить несколько значений таким образом, чтобы я мог легко преобразовать выходные данные в число с плавающей запятой, а затем поместить их в массив numpy
?
Причина, по которой я хотел бы это, заключается в том, что при определенных расчетах A+B
вычисляется неправильно как float
, но после вычисления Decimal(A+B)
результирующий результат можно преобразовать в float
и вызвать никаких дальнейших трудностей в расчетах.
РЕДАКТИРОВАТЬ: Я разрабатываю «чит-метод», но не знаю, есть ли у него ножки:
a=np.array([1,2,3])
b=np.array([4,5,6])
A=a.astype(object)
B=b.astype(object)
getcontext().prec = 100
for i in range (0,2):
x=Decimal(A[i]+B[i])
print(x)
Ключ здесь для отступа print(x)
, печатается 5 7 9
. Если не удается найти истинное решение указанной выше проблемы, есть ли способ преобразовать 5 7 9
в np.array([5,7,9])
. (Может быть, экспортируя как файл csv и снова импортируя в Python?)