【发布时间】:2014-05-19 10:09:43
【问题描述】:
`大家好。
我发现子类化 ndarray 时有一个奇怪的行为。
import numpy as np
class fooarray(np.ndarray):
def __new__(cls, input_array, *args, **kwargs):
obj = np.asarray(input_array).view(cls)
return obj
def __init__(self, *args, **kwargs):
return
def __array_finalize__(self, obj):
return
a=fooarray(np.random.randn(3,5))
b=np.random.randn(3,5)
a_sum=np.sum(a,axis=0,keepdims=True)
b_sum=np.sum(b,axis=0, keepdims=True)
print a_sum.ndim #1
print b_sum.ndim #2
如您所见,keepdims 参数不适用于我的子类fooarray。它失去了一根轴。我怎么不能避免这个问题?或者更一般地说,我怎样才能正确地继承 numpy ndarray?
【问题讨论】:
-
一种可能的解决方案是改用
a.sum。