[问题] numpy subclassing ndarray

楼主: walelile (wakaka)   2015-04-17 06:02:22
我目前尝试创一个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)
请问我应该怎么修改才能符合我的目的?
感谢各位
楼主: walelile (wakaka)   2015-04-22 02:52:00
解决方式 (2)return np.array(arr[0:2]).view(cls)

Links booklink

Contact Us: admin [ a t ] ucptt.com