C API로 Numpy Matrix를 생성하는 방법이 있습니까?
-
05-09-2019 - |
문제
내가 찾을 수있는 Numpy C API에 대한 문서를 읽었지만 여전히 2 차원 배열이 아닌 C API로 매트릭스 객체를 구성 할 가능성이 있는지 여부를 알 수 없었습니다. 이 기능은 수학 매트릭스와의 작업을위한 것이며, 사용자 가이 값을 배열에서 행렬로 변환하는 것을 잊어 버린 매트릭스 곱셈을 호출하는 경우 이상한 결과를 원하지 않습니다 (곱셈 및 지수는 매트릭스 서브 클래스가 가진 유일한 차이).
해결책
numpy.matrix
정의 된 일반 클래스입니다 numpy/core/defmatrix.py. Python에서 사용자 정의 클래스의 다른 인스턴스로 C API를 사용하여 구성 할 수 있습니다.
다른 팁
당신은 호출 가능한 모든 python을 호출 할 수 있습니다 PyObject_Call*
기능.
PyObject *numpy = PyImport_ImportModule("numpy");
PyObject *numpy_matrix = PyObject_GetAttrString(numpy, "matrix");
PyObject *my_matrix = PyObject_CallFunction(numpy_matrix, "(s)", "0 0; 0 0");
매트릭스가 생성됩니다 my_matrix
크기 2x2.
편집하다: 변경 사항이 변경되었습니다 numpy.zeros
/numpy.ndarray
에게 numpy.matrix
대신에.
또한 주제에 대한 좋은 튜토리얼도 찾았습니다. http://starship.python.net/crew/hinsen/numpyextensions.html
제휴하지 않습니다 StackOverflow