두 행렬의 요소 적 합계 인 응용 프로그램에서 병목 현상을 해결하려고합니다.numpy 배열 데이터 속성에 대한 포인터 사용
NumPy와 Cython을 사용하고 있습니다. 행렬 속성이있는 cdef
클래스가 있습니다. Cython은 여전히 클래스 속성에서 버퍼 배열을 지원하지 않기 때문에 this을 따라 갔고 매트릭스의 data
속성에 대한 포인터를 사용하려고했습니다. 것은 결과가 나타내는 바와 같이, 내가 틀린 일을하고 있다고 확신합니다. 내가 더 많거나 적은 다음 할 일은 노력 무엇
:
cdef class the_class:
cdef np.ndarray the_matrix
cdef float_t* the_matrix_p
def __init__(self):
the_matrix_p = <float_t*> self.the_matrix.data
cpdef the_function(self):
other_matrix = self.get_other_matrix()
the_matrix_p += other_matrix.data
그래서 문제가 무엇입니까? 어떤 오류가 발생하고 있습니까? –