【发布时间】:2022-10-04 19:22:09
【问题描述】:
- 我想为 Python 编写一个 C 扩展库,旨在用 C 替换 Python 代码。
- 和 Python 代码有如下几行:
import numpy as np
a = np.array([1,3,12,0.43,234,-3,-4])
b = a[[1,3,5]]
print(b)
# array([ 3. , 0.43, -3. ])
-
与将 int 作为 numpy 数组的索引不同,此示例将数组视为索引。
-
我很困惑获取给定 numpy 数组的指定索引,对应的 C-API 名称是什么?
-
NUMPY C-API 文件位于numpy c-api
-
非常感谢。
【问题讨论】:
-
@MechanicPig:不,这是
numpy.ndarray.item方法的 C API 版本。它不符合问题的要求。 -
PyObject_GetItem会起作用,尽管使用 C API 与用 Python 编写相比不会有很大的好处。我认为没有可用于每个单独操作的直接 Numpy C API 函数 -
NUMPY C API 相当快,但它只包含我的 Python 代码的一小部分。为了加快速度,仍有大量纯 Python 代码需要用 C 重写。
标签: python arrays c numpy python-c-api