“My NumPy Year: Creating a DType for the Next Generation of Scientific Computing” を読んだ

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(アリーナ・アロケーター)」 というものも使われている