任何方法来创建与C API一个NumPy的矩阵?
-
05-09-2019 - |
题
我读NumPy的C API的文档我能找到,但依然没能找出是否有构建具有C API的矩阵对象的可能性 - 不是一个二维阵列。该功能用于与数学矩阵的工作,如果用户调用矩阵乘法忘记这个值从数组转换为矩阵(乘法和取幂是矩阵子类有唯一的区别),我不想奇怪的结果。
解决方案
numpy.matrix
是在限定的普通类numpy的/核心/ defmatrix.py 。可以使用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");
此将创建尺寸2×2的矩阵my_matrix
。
编辑:变更引用numpy.zeros
/ numpy.ndarray
代替到numpy.matrix
我还发现关于该主题的很好的教程: http://starship.python.net/机组人员/ hinsen / NumPyExtensions.html
不隶属于 StackOverflow