如何解决如何有效地从 numpy 数组初始化 pyarrow 中的固定大小的 ListArray?
我如何有效地初始化一个固定大小的 pyarray.ListArray
来自适当准备的 numpy 数组?
documentation of pyarray.array
表示嵌套的可迭代输入结构有效,但实际上如果外部可迭代是一个 numpy 数组则不起作用:
int main()
{
auto myconfmgr = ConfigManagerFactory::CreateConfigManager(iniReader);
// this probably should be called inside of CreateConfigManager() instead...
myconfmgr->Configure(iniReader);
...
}
将直接匹配 Arrow 规范的输入数组拆分为 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,w))
# -> ArrowInvalid: only handle 1-dimensional arrays
单独的数组,然后从那里重新组装似乎很荒谬。
pyarray.ListArray.from_arrays
似乎需要一个 n
参数,它只对可变大小列表有意义。
解决方法
我相信您正在寻找 pyarrow.FixedSizeListArray.from_arrays ,遗憾的是,它似乎没有记录(我继续并提交了 a JIRA ticket)
您首先需要将 numpy 数组重塑为连续数组。
import numpy as np
import pyarrow as pa
len = 10
width = 3
# Or just skip the initial reshape but keeping it in to simulate real data
arr = np.arange(len*width,dtype="i2").reshape(-1,width)
arr.shape = -1
pa.FixedSizeListArray.from_arrays(arr,width)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。