My NumPy Year: Creating a DType for the Next Generation of Scientific Computing を読んだ。
- Numpy2.xの文字列のDTypeについて記載された記事である
- Python3はUnicode文字列を扱うため、Numpy1.xでは文字列の型は
dtype='<U5'
のようになる- アスキー文字でも4バイト使うため、メモリ効率が悪い
- 文字列の操作が遅い
- Numpy1.xでは文字列の型は
dtype=object
としても表現できる- これはpandasの性能に大きな影響があった
- また、astropyという天文学(?)関連のライブラリにも
- オブジェクトの配列でなくポインターの配列で実装した?
- Numpy2.xで文字列の型
np.dtype.StringDtype
が導入された - メモリ管理に「Arena Allocator(アリーナ・アロケーター)」 というものも使われている