我正在尝试加快 Python 脚本的速度。我已经对代码进行了分析,并已经在纯 Python 中重新设计了很多东西。看起来我仍然需要花费大量时间来访问一些 numpy 数组,方法看起来像这样:
KeyArray[BoolArray[index]]
其中KeyArray
是ndim=2的字符串数组,BoolArray
是ndim=1的包含bool
值的数组,而索引则为一个int
。
我正在尝试学习Cython,以了解它有多快。我编写了以下脚本,但它并不起作用:
import numpy as np
cimport numpy as np
def fastindexer(np.ndarray[np.str_t,ndim=1] KeyArray, np.ndarray [np.bool_t,ndim=2] BoolArray, np.int_t DateIndex):
cdef np.ndarray[np.str_t,ndim=1] FArray = KeyArray[BoolArray[DateIndex]]
return FArray
我知道numpy数组中不能直接使用str/bool类型。我尝试进行类型转换,但是不理解应该如何编写。
欢迎任何帮助
KeyArray[BoolArray[index]]
变成更像是KeyArray[index]
的形式? - Joe Kington