3

numpy datetime64 からサブクラス化するにはどうすればよいですか? たとえば、標準の日時を使用して、簡単にサブクラス化できます。

import datetime as dt

class SubFromDateTime(dt.datetime):
    def __new__(self):
        return dt.datetime.__new__(self, 2012, 1, 1)

print type(SubFromDateTime())

>>> 
<class '__main__.SubFromDateTime'>

ただし、datetime64 を使用すると、次のようにすると、クラスではなく常に datetime64 参照が返されます...

from numpy import datetime64

class SubFromDT64(datetime64):
    def __new__(self):
        return datetime64.__new__(self, '20120101')

print type(SubFromDT64())

>>>
<type 'numpy.datetime64'>

どうすればこれを修正できますか? 基本的には、単純な .Month() メソッドを使用して特定の日付の月を取得するなどのカスタム関数を追加できる、datetime64 の単純なラッパーを作成したいと考えています。上の例ではメソッドを簡単に追加できますが、下の例ではメソッドが認識されず、datetime64 オブジェクトと見なされます。

4

1 に答える 1