我阅读了我能找到的关于NumPy C API的文档,但仍然无法确定是否有可能使用C API构建矩阵对象 - 而不是二维数组.该函数用于处理数学矩阵,如果用户调用矩阵乘法,忘记将数值从数组转换为矩阵(乘法和取幂是矩阵子类的唯一区别),我不希望得到奇怪的结果.
您可以使用这些PyObject_Call*
函数调用任何可调用的python .
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