繁体   English   中英

Cython-具有numpy属性的类

[英]Cython - Class with numpy attributes

我正在尝试通过使用cython扩展类型来优化python类。 我的操作使用的是numpy而没有建立索引,即分段加法,矩阵乘法,因此我的主要目标是减少python的开销。 我对类型声明最感兴趣:我应该使用numpy还是cython结构? 这是一个简单的例子:


cdef class Analyzer:
    cdef float coeff
    cdef float[:] v1, v2 #should I use memoryview? can I use a ndarray?

    def __init__(self):
        # some stuff ...

    cpdef void func(self, matrix, vector):
        # some stuff ...
        cdef Py_ssize_t i
        for i in range(big_number):
            self.update_vectors(i)
            self.v1 = matrix @ vector + self.coeff * self.v2 # all my operations are like this i.e. no indeces 
            # should I convert views to nd.arrays?

请注意,当我尝试self.coeff * self.v2 ,由于没有将它们视为numpy数组,因此会出现错误:

Invalid operand types for '*' (float; float[:] *)

因此,由于我使用的是numpy ,没有必要仅为标准线性代数创建循环,因此,如何声明(类)属性类型以减少开销?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM