# NumPy 2.0.0 릴리스

> Clean Markdown view of GeekNews topic #15395. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=15395](https://news.hada.io/topic?id=15395)
- GeekNews Markdown: [https://news.hada.io/topic/15395.md](https://news.hada.io/topic/15395.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-06-17T17:33:12+09:00
- Updated: 2024-06-17T17:33:12+09:00
- Original source: [numpy.org](https://numpy.org/devdocs/release/2.0.0-notes.html)
- Points: 1
- Comments: 2

## Topic Body

#### 새로운 기능  
- 새로운 가변 길이 문자열 dtype, `StringDType`와 문자열 작업을 위한 `numpy.strings` 네임스페이스 추가.  
- 모든 `numpy.fft` 함수에서 `float32`와 `longdouble` 지원.  
- 메인 `numpy` 네임스페이스에서 배열 API 표준 지원.  
  
#### 성능 개선  
- 정렬 함수(`sort`, `argsort`, `partition`, `argpartition`)가 Intel x86-simd-sort와 Google Highway 라이브러리를 사용하여 가속화됨.  
- macOS Accelerate 지원 및 macOS >=14용 바이너리 휠 제공, 선형 대수 연산의 성능 크게 향상.  
- `numpy.char` 고정 길이 문자열 작업이 가속화됨.  
- 하드웨어별 커널을 확인하고 사용할 수 있는 새로운 추적 및 검사 API, `opt_func_info` 추가.  
  
#### Python API 개선  
- 공용 API와 비공용 API의 명확한 분리, 새로운 모듈 구조.  
- 비추천 함수와 별칭 다수 제거, 학습과 사용이 더 쉬워짐.  
- 표준 dtype 이름과 새로운 `isdtype` 검사 함수 추가.  
  
#### C API 개선  
- 사용자 정의 dtype을 생성하기 위한 새로운 공용 C API 추가.  
- 오래된 함수와 매크로 제거, 비공용 내부 숨김.  
- 새로운 초기화 함수: `PyArray_ImportNumPyAPI`와 `PyUFunc_ImportUFuncAPI`.  
  
#### 개선된 동작  
- NEP 50을 채택하여 타입 승격 동작 개선, 입력 배열의 데이터 값이 아닌 dtype에만 의존하게 됨.  
- Windows에서 기본 정수 타입이 `int32`에서 `int64`로 변경됨.  
- 최대 배열 차원 수가 32에서 64로 증가.  
  
#### 문서화  
- 참조 가이드 탐색이 크게 개선됨.  
- 소스에서 빌드하는 문서가 완전히 새로 작성됨.  
  
#### Python API 제거 항목  
- `np.geterrobj`, `np.seterrobj` 및 관련 ufunc 키워드 인수 `extobj=` 제거.  
- `np.cast` 제거, `np.asarray(arg, dtype=dtype)`로 대체.  
- `np.source` 제거, `inspect.getsource`로 대체.  
- `np.lookfor` 제거.  
- `numpy.who` 제거, Spyder나 Jupyter Notebook 같은 IDE의 변수 탐색기 사용 권장.  
- 여러 비추천 함수와 별칭 제거.  
  
#### GN⁺의 의견  
- **성능 개선**: 새로운 정렬 알고리즘과 macOS Accelerate 지원으로 인해 데이터 처리 속도가 크게 향상될 것으로 기대됨.  
- **API 정리**: 비추천 함수와 별칭의 제거로 인해 NumPy 사용이 더 직관적이고 간결해짐.  
- **타입 승격**: NEP 50을 채택하여 타입 승격 동작이 더 예측 가능해짐. 이는 혼합 dtype 연산에서의 예기치 않은 결과를 줄이는 데 도움이 될 것임.  
- **문서화 개선**: 참조 가이드와 빌드 문서의 개선으로 인해 개발자들이 NumPy를 더 쉽게 이해하고 사용할 수 있게 됨.  
- **호환성 문제**: 많은 API 변경 사항이 있으므로 기존 코드가 호환되지 않을 수 있음. 마이그레이션 가이드를 참고하여 코드를 업데이트하는 것이 필요함.

## Comments



### Comment 26368

- Author: eususu
- Created: 2024-06-18T12:59:26+09:00
- Points: 1

충돌하는 패키지들이 많겠네요..

### Comment 26343

- Author: neo
- Created: 2024-06-17T17:33:12+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=40699470) 
- **복잡한 연산 조합 방법**: 비요소별 연산을 구성하는 더 간단하고 기억하기 쉬운 방법이 필요함. 다양한 방법이 너무 많아 매번 다시 배워야 하는 어려움이 있음.

- **윈도우 기본 정수형 변경**: 윈도우에서 기본 정수형이 int32에서 int64로 변경됨. 이는 다른 플랫폼과 일치하게 되어 좋음.

- **Numpy 주요 업데이트**: Numpy를 직접 자주 사용하지 않는 사용자에게는 큰 변화가 없을 수 있음. 주로 pandas와 scipy를 사용하며, 필요할 때만 Numpy 알고리즘을 사용함.

- **업데이트 주기**: 주요 업데이트가 있을 때마다 바로 업그레이드하지 않고, 안정적인 버전이 나올 때까지 기다리는 편임.

- **버전 관리**: 18년 만에 큰 변화가 있는 첫 주요 릴리스는 새로운 버전으로 포크하는 것이 더 나을 것 같음. `pip install numpy2`로 설치하고, 다른 라이브러리와의 호환성을 걱정하지 않도록 하는 것이 좋음.

- **패키지 호환성 문제**: 일부 패키지가 1.x 버전에 고정되지 않아 문제가 발생하고 있음. `pip install numpy==1.*`로 임시 해결 가능함.

- **릴리스 노트 링크**: Numpy 2.0.0 릴리스 노트 링크 제공. [Numpy 2.0.0 릴리스 노트](https://numpy.org/devdocs/release/2.0.0-notes.html)
