numpy.nanmean()在numpy.ndarray的子​​类上返回意外类型

时间:2014-08-21 20:39:24

标签: numpy

从一个流行的例子开始

import numpy as np

class TestArray(np.ndarray):

    def __new__(subtype, shape, dtype=float, buffer=None, offset=0,
          strides=None, order=None):
        obj = np.ndarray.__new__(subtype, shape, dtype, buffer, offset, strides,
                         order)

        return obj

obj = TestArray(shape=(3,))
obj[:] = [1, 2, 3]
print type(np.nanmean(obj))
print type(np.nanmean(numpy.array(obj)))

给出输出

<class '__main__.TestArray'>
<type 'numpy.float64'>

我宁愿numpy.nanmean(obj)也返回一个numpy.float64。

现在显然我可以投射到numpy.array,但我不想这样做。

我需要在类定义中修改什么,以便numpy.nanmean()(可能还有其他)返回的类型总是与使用numpy.ndarray直接调用的类型相同?

0 个答案:

没有答案