numpy 集成

numpy 集成#

PyArrow允许在NumPy数组和Arrow数组之间来回转换。

NumPy 转 Arrow#

要将 NumPy 数组转换为 Arrow,可以直接调用 pyarrow.array() 工厂函数。

import numpy as np
import pyarrow as pa
data = np.arange(10, dtype='int16')
arr = pa.array(data)
arr
---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
Cell In[1], line 2
      1 import numpy as np
----> 2 import pyarrow as pa
      3 data = np.arange(10, dtype='int16')
      4 arr = pa.array(data)

ModuleNotFoundError: No module named 'pyarrow'

从 NumPy 转换支持广泛的输入 dtypes,包括结构化 dtypes 或字符串。

Arrow 转 NumPy#

在相反的方向,可以使用 to_numpy 方法生成 Arrow Array 的视图,以便与 NumPy 一起使用。这仅限于 NumPy 和 Arrow 具有相同物理表示的原始类型,并且假设 Arrow 数据没有空值。

import numpy as np
import pyarrow as pa
arr = pa.array([4, 5, 6], type=pa.int32())
view = arr.to_numpy()
view
---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
Cell In[2], line 2
      1 import numpy as np
----> 2 import pyarrow as pa
      3 arr = pa.array([4, 5, 6], type=pa.int32())
      4 view = arr.to_numpy()

ModuleNotFoundError: No module named 'pyarrow'