作者walelile (wakaka)
看板Python
标题[问题] numpy subclassing ndarray
时间Fri Apr 17 06:02:22 2015
我目前尝试创一个subclass of numpy.ndarray
希望他可以有的功能是:
1. 有dimension限制
2. 可以限制大小
3. 无资料型态限制
目前状况:
(1) dtype会被限制,如果dtype与arg: arr型态不一致,
会回传一array但值错误
class Vector1D(numpy.ndarray):
def __new__(cls, arr):
return np.ndarray.__new__(cls, shape=(3), dtype=float,
buffer=numpy.asarray(arr))
e.g:
> s = Vector1D([1,2,3])
> print (s)
[ 4.94065646e-324 9.88131292e-324 1.48219694e-323]
(2) __new__改用np.asarray()
但这变成我没有办法去限制dimension与大小
class Vector1D(cls, arr):
def __new__(cls, arr):
return np.asarray(arr).view(cls)
请问我应该怎麽修改才能符合我的目的?
感谢各位
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.171.56.185
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1429221744.A.31A.html
※ 编辑: walelile (1.171.56.185), 04/17/2015 06:03:16
※ 编辑: walelile (1.171.56.185), 04/17/2015 06:04:22
※ 编辑: walelile (1.171.56.185), 04/17/2015 06:09:50
1F:→ walelile: 解决方式 (2)return np.array(arr[0:2]).view(cls) 04/22 02:52