第一次尝试使用Cython,尝试在2个numpy数组和float32上进行减法和加法的函数上获得加速。我试图让这个功能尽可能快地被称为很多次,如果我可以加快速度,那么这是一个很大的胜利。
def broadcast(w, m, spl):
"""
w and m are float32 ndarrays e.g shape (43,)
spl is an nd.float32 value e.g 9722.0
"""
return w + (m - spl)
到目前为止我的cythonising是
import numpy as np
cimport numpy as np
DTYPE = np.float32
ctypedef np.float32_t DTYPE_t
def broadcast(np.ndarray w, np.ndarray m, np.float32 spl):
return w + (m - spl)
但它返回错误:
'float32' is not a type identifier
我不知道为什么我不能宣布这种类型?我需要申报C类型吗?什么是C中的np.float32?