속도 제한 때문에 Python에서 Fortran으로 변환하려고합니다. (그래서 나는 f2py를 사용할 수있다.)Numpy 함수의 Fortran과 동일
문제는 코드에 Fortran 90에는 존재하지 않는 많은 NumPy 함수가 있다는 것입니다. 따라서 제 질문은 다음과 같습니다 : 적어도 일부를 구현하는 Fortran 라이브러리가 있습니까? Fortran의 NumPy 기능은 무엇입니까?
코드에서 사용해야하는 함수는 일반적으로 간단하므로 수동으로 변환 할 수 있습니다. 그러나 Fortran에서 그다지 많은 경험이 없기 때문에 휠을 다시 발명하지 않으려 고합니다. 중요한주의 사항을 모를 수도 있습니다.
어쨌든, 내가 필요로하는 기능 중 일부는 다음과 같습니다.
np.mean (with the axis parameter)
np.std (with the axis parameter)
np.roll (again with the axis parameter)
np.mgrid
np.max (again with axis parameter)
아무 때 나 유용합니다. 나는 그들 모두를 대신 할만한 것을 찾지 않을 것이지만, 적어도 그들 중 일부가 이미 존재한다면 그것은 아주 좋을 것이다.
이 함수들을 전체'numpy' 배열에 적용하고 있습니까? 또는 반복적으로 사용 하시겠습니까? 'numpy' 코드가 이미 이와 같은 함수를 잘 사용하고 있다면, Fortran이나 C (Cython을 통해)로 변환하면 그만큼 이득을 얻지 못할 수도 있습니다. – hpaulj
@hpaulj NumPy 배열 전체에 사용하고 있지만, 전체가 제거 할 수없는 두 개의 큰 루프 안에 있습니다.그래서 Cython을 사용하는 것을 제외하고는 그 주위에 방법이 없다고 생각합니다. 그러나 지금 cython을 배울 시간은 없습니다. – TomCho
파이썬 루프와는 달리 나쁜 것은 아닙니다. 파이썬 루프는 느리며 포트란 루프는 빠릅니다. 특수 함수가있는 경우 사용이 더 짧지 만 잘 최적화 된 (예 : 벡터화 된) 루프보다 실제로 빠르지는 않습니다. –