[問題] numpy.ndarray subclass回傳值形態

看板Python作者 (ives)時間9年前 (2016/04/28 02:32), 9年前編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
我有一個numpy.ndarray的subclass 基本上都沒什麼問題, 只有當我使用numpy.ndarray的成員函數時 原本應該回傳float或int的函數,現在回傳的值都是我的subclass的instance 例如: 若是 a = numpy.array([1, 2, 3]); b = a.sum() 則 b = 6,且 type(b) = numpy.int64 但若 a = myClass.ArraySubclass([1, 2, 3]); b = a.sum() 則 b = ArraySubclass(6),且 type(b) = myClass.ArraySubclass 其中myClass是我自己寫的module,而ArraySubclass則是ndarray的subclass 我嘗試自己定義__array_wrap__及__array_prepare__ 但是頂多把回傳值的type變成numpy.ndarray, 而無法像原本a是numpy.ndarray時,能夠自動回傳int或float 目前的解決方案是針對常用的ndarray成員函數去重新定義並指定type 但我覺得這方法頗蠢,也不general,只是用來應急 請問我該怎麼做才能用較通用的方式解決這個問題呢? 感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 161.253.72.149 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1461781932.A.CE3.html ※ 編輯: ives0228 (161.253.72.149), 04/28/2016 02:34:13
文章代碼(AID): #1N8GMipZ (Python)
文章代碼(AID): #1N8GMipZ (Python)