1

私は持っていnumpy.ndarrayます。最初の2列は、タイプの日付ですdatetime.datetime。これを(日数の差)*(12/365)と定義した2つの間の(フロートとしての)月の差を見つけたいと思います。そこで、2つの日時を減算して返されるtimedeltaオブジェクトの.daysプロパティにアクセスしたいと思います。

私はこれを行うことができません:(MyArray[1] - MyArray[0]).daysPythonはtimedeltaオブジェクトを期待することを知らないためです。C#では、次のようにキャストしてみます。

((timedelta)(MyArray[1] - MyArray[0])).days

Python(numpy)でこれを行う方法は何ですか?ループする必要がありますか?

4

1 に答える 1

2

残念ながら、それはあなたの配列を反復せずに実行することはできませんtimedelta

deltas = MyArray[1]-MyArray[0]
diff_days = np.fromiter((d.days for d in deltas), dtype=float, count=len(deltas))

ここでは、より効率的にするために引数を使用np.fromiterしています(配列のサイズが事前に割り当てられています)。count

新しい日付(2012/09)では、のようなプロパティを取得できないdatetime64 dtypeことに注意してください。days

于 2012-09-13T12:05:25.100 に答える