"大家好.
我发现子类化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
Run Code Online (Sandbox Code Playgroud)
如您所见,该keepdims参数对我的子类不起作用fooarray.它失去了一个轴.我怎能不避免这个问题?或者更一般地说,我怎样才能正确地将numpy ndarray子类化?