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
<pyarrow.lib.Int16Array object at 0x7fb1d1e6ae58>
[
0,
1,
2,
3,
4,
5,
6,
7,
8,
9
]
从 NumPy 转换支持各种输入数据类型,包括结构化数据类型或字符串。
Arrow 到 NumPy#
在相反的方向,可以使用 to_numpy()
方法生成 Arrow 数组的视图以供 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
array([4, 5, 6], dtype=int32)
对于更复杂的数据类型,您必须使用 to_pandas()
方法(它将使用 Pandas 语义构造一个 Numpy 数组,例如,表示空值)。