有什么方法可以使用 C API 创建 NumPy 矩阵吗?
我阅读了我能找到的有关 NumPy C API 的文档,但仍然无法找出是否有可能使用 C API 构造矩阵对象(而不是二维数组)。 该函数旨在处理数学矩阵,如果用户调用矩阵乘法忘记将此值从数组转换为矩阵(乘法和求幂是矩阵子类的唯一区别),我不希望出现奇怪的结果。
I read the documentation on NumPy C API I could find, but still wasn't able to find out whether there is a possibility to construct a matrix object with C API — not a two-dimensional array. The function is intended for work with math matrices, and I don't want strange results if the user calls matrix multiplication forgetting to convert this value from an array to a matrix (multiplication and exponentiation being the only difference that matrix subclass has).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用
PyObject_Call*
函数调用任何可调用的 Python。这将创建一个大小为 2x2 的矩阵
my_matrix
。编辑:将对
numpy.zeros
/numpy.ndarray
的引用更改为numpy.matrix
。我还找到了关于该主题的很好的教程: http://starship.python.net/crew/hinsen /NumPyExtensions.html
You can call any python callable with the
PyObject_Call*
functions.This will create a matrix
my_matrix
of size 2x2.EDIT: Changed references to
numpy.zeros
/numpy.ndarray
tonumpy.matrix
instead.I also found a good tutorial on the subject: http://starship.python.net/crew/hinsen/NumPyExtensions.html
numpy.matrix
是在 numpy/core/defmatrix.py。 您可以使用 C API 来构造它,就像 Python 中用户定义类的任何其他实例一样。numpy.matrix
is an ordinary class defined in numpy/core/defmatrix.py. You can construct it using C API as any other instance of user-defined class in Python.