首页 > 解决方案 > 扩展/子类numpy数组?

问题描述

我如何扩展/继承 numpy .. 我正在查看文档,但有些事情仍然不清楚。

我想创建一个扩展 numpy 数组并具有以下属性的类:

  1. 充当 numpy 数组
  2. 添加其他对象属性
  3. 覆盖 + 和 * 操作,但添加允许我访问原始功能的方法调用
  4. 如何更新方法内的数组。铁

    class MyNP:  
    
      def __init__(self, val, a1):
         self.attr1 = a1
         self = val  #update/assign val
    
      def __add__(self,right): ....
      def add(self,right): super....
    

这不会起作用,因为它会覆盖自我,它会变成 numpy 而不是 MyNP。

  1. 覆盖repr,简单地定义它就可以了,对吧?
  2. 复制()方法。我目前这样做:

    def copy(self): return type(self)(vsize=self.vsize, vsn=self.bits)
    
  3. 如何强制 np.sort()、np.concatenate()、np.unique() 等操作在具有 MyNP 操作数时返回 MyNP?


标签: pythonarraysnumpysubclassing

解决方案


推荐阅读