2
십진 정밀도 100을 갖는 mpf 요소가 포함 된 배열이 numpy입니다. A의 numpy 내적을 자체적으로 가져 가려고 결정하면이 정밀도가 사라지나요?Python의 Numpy와 MpMath 사이의 상호 운용성
이 경우 정밀도를 유지할 수 있도록 numpy 배열을 mpmath 행렬로 변환 할 수있는 방법이 있습니까?
십진 정밀도 100을 갖는 mpf 요소가 포함 된 배열이 numpy입니다. A의 numpy 내적을 자체적으로 가져 가려고 결정하면이 정밀도가 사라지나요?Python의 Numpy와 MpMath 사이의 상호 운용성
이 경우 정밀도를 유지할 수 있도록 numpy 배열을 mpmath 행렬로 변환 할 수있는 방법이 있습니까?
누빔 어레이는 객체, 특히 mpf
객체를 보유 할 수 있으며 dot
과 같은 메소드는 이러한 객체의 덧셈/곱셈 방법을 사용할 수 있습니다. 예 :
import mpmath
import numpy
mpmath.mp.dps = 25 # higher precision for demonstration
a = [mpmath.sin(mpmath.pi*n/3) for n in range(99)]
b = numpy.array(a)
b.dot(b)
출력 비교 용 mpf('49.50000000000000000000000165')
,이 배열 요소 배정도로 전송할 경우 NumPy와로 변환 할 때 수레 일어나는 것이다 :
c = numpy.array(a, dtype=float)
c.dot(c)
출력 49.499999999999993
. 따라서 mpmath가 제공하는 고정밀도는 첫 번째 버전에서 도트 메서드가 호출 될 때 유지됩니다.
문제가 발생할 수 있습니다. 'dots'은'fractions.Fraction' 인스턴스들로 가득 찬 배열로 테스트 할 때 잘 동작합니다. 그래서 numpy float으로 캐스팅하지 않고 적절한 mpmath 메소드를 호출 할 것입니다. 나는 그것을 시도하는 것이 좋습니다. – user2357112
감사합니다 :) numpy 작업이 mpmath와 잘 작동하는 문서를 찾으려고했지만 불행히도 지금까지 행운이 없습니다. ( – Jing