Pandas Apply와 열 생성을 위한 NumPy 벡터화의 성능 고려 사항
Pandas Apply가 널리 사용되지만 생성 시 성능은 NumPy 벡터화보다 뒤떨어집니다. 기존 열의 새 열. 이러한 차이는 적용 함수가 상당한 오버헤드를 발생시키는 Python 수준 루프라는 사실에 기인합니다. 반면 벡터화는 입력 함수를 범용 함수로 변환하여 효율성을 크게 향상시킵니다.
성능 벤치마크
Python 수준 루프를 비교하고 raw=True로 적용하면 관찰:
진정한 벡터화
그러나 적용과 벡터화 모두 NumPy 배열에서 요소별로 계산을 수행하는 np.where와 같은 진정한 벡터화 작업에 의해 가려집니다. 이 접근 방식은 훨씬 더 빨라서 루프가 필요하지 않습니다.
추가 성능 고려 사항
중요한 병목 현상이 있는 경우 Python 함수를 고도로 최적화된 C로 컴파일하는 도구인 numba를 고려하세요. 암호. numba를 사용하면 계산 속도가 더욱 빨라질 수 있습니다.
결론
기존 열에서 새 열을 생성할 때 NumPy 벡터화는 기본 벡터화로 인해 Pandas 적용에 비해 우수한 성능을 제공합니다. 능력. 최적의 효율성을 위해서는 해당되는 경우 실제 벡터화를 사용해야 합니다.
위 내용은 Pandas DataFrame에서 새 열을 생성하는 데 Pandas Apply 또는 NumPy Vectorize 중 어떤 방법이 더 빠릅니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!