python - 熊猫系列转CFFI指针
问题描述
我正在尝试使用 CFFI 模块在 Python 和 Rust 代码之间进行互操作。我想通过 C 接口传递一个 Pandas 系列数据指针。但是我不知道基础系列数据是如何布置的。我可以通过调用使其工作,series.to_numpy()
但是否可以将指针直接传递给 Pandas 数组而无需将数据复制到 Numpy 数组中?
请参见以下示例:
import cffi
import pandas as pd
series = pd.Series((1.0, 2.0, 3.0))
ffi = cffi.FFI()
ffi.cdef('void main(const double *values, uint32_t length);')
lib = ffi.dlopen('./target/debug/libpython_rust.so')
# pointer = ffi.cast('double *', series.array) # <-- is it possible to make it work?
pointer = ffi.cast('double *', series.to_numpy().ctypes.data) # <-- works but we are making a copy
lib.main(pointer, series.size)
解决方案
推荐阅读
- xamarin.forms - 棱镜区域错误 Prism.Regions.IActiveRegionHelper
- directory - 需要使用 Ansible 同步模块一起更改文件夹 + 文件的权限
- vuetify.js - v-switch 奇怪的 v-model 行为
- java - Liquibase loadData 不使用我的加载我的 CSV 但不是错误
- python - python 使用 Microsoft 团队机器人发送 pdf 文件
- php - APTANA Studio for PHP 的最后一个稳定版本是 3.3
- java - 使用 Java Stream 计算包含在另一个集合中的集合中包含的字段的总和
- python-3.x - 为什么我的蛮力(O((n1 + n2)log(n1 + n2)))解决方案比优化解决方案(O(n1 + n2))更快?
- javascript - 如何用javascript设置焦点?
- jquery - 对话框弹出中的 Jquery 和表单验证