【发布时间】:2021-09-01 16:53:34
【问题描述】:
如何有效地初始化一个固定大小的pyarray.ListArray
来自适当准备的 numpy 数组?
documentation of pyarray.array 表示嵌套的可迭代输入结构有效,但在实践中,如果外部可迭代是 numpy 数组则不起作用:
import numpy as np
import pyarrow as pa
n = 1000
w = 3
data = np.arange(n*w,dtype="i2").reshape(-1,w)
# this works:
pa.array(list(data),pa.list_(pa.int16(),w))
# this fails:
pa.array(data,pa.list_(pa.int16(),w))
# -> ArrowInvalid: only handle 1-dimensional arrays
将直接匹配 Arrow 规范的输入数组拆分为 n 单独的数组然后从那里重新组装似乎很可笑。
pyarray.ListArray.from_arrays 似乎需要一个 offsets 参数,它只对可变大小列表有意义。
【问题讨论】:
-
我对@987654330@一无所知,但如果它对列表和嵌套列表感到满意,
arr.tolist()是一种有效的生成方式。
标签: python numpy pyarrow apache-arrow