我阅读了我能找到的关于 NumPy C API 的文档,但仍然无法确定是否有可能使用 C API 构造矩阵对象——而不是二维数组。该函数适用于数学矩阵,如果用户调用矩阵乘法时忘记将此值从数组转换为矩阵(乘法和求幂是矩阵子类的唯一区别),我不想要奇怪的结果。
Maxim
问问题
2482 次
2 回答
6
您可以使用这些函数调用任何可调用的 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
于 2009-02-21T19:07:29.103 回答
3
numpy.matrix
是在numpy/core/defmatrix.py中定义的普通类。您可以使用 C API 将其构造为 Python 中用户定义类的任何其他实例。
于 2009-02-21T19:06:20.947 回答