当我需要这样的代码才能工作时,我正在努力应对这种情况:
from custom_lib import custom_type, custom_dtype
import numpy as np
a = custom_type(1)
arr = np.array([a,a],dtype=custom_dtype)
arr+a // doesn't work ( No cast function available. )
arr+np.array(a,dtype=custom_dtype) // works and just broadcasts properly
而且我的包装类型是 double-like 类型,但在数学运算上有特殊行为,所以我需要这种类型的完整 CPython 包装和 numpy 兼容性(这就是 boost.python 对我不起作用的原因)。
这里有任何 numpy c-api 大师吗?任何帮助表示赞赏。