numpyのに一定の時間を取得する方法?

maynull:

場合np.datetime64型のデータが与えられ、どのように時間を中心に一定の時間を取得しますか?

たとえば、np.datetime64('2020-04-01T21:32')関数に与えられて、私は、関数が返すようにしたいnp.datetime64('2020-04-01T21:30')np.datetime64('2020-04-01T21:39')与えられた時間約10分- 。

numpyのでこれを行う方法はありますか?

Meta4:

numpyのは、パンダが行うよう時間内に内蔵しておりません。

あなたが望むすべては2個のタイムスタンプがある場合は、以下の機能が動作するはずです。

def ten_minutes_around(t):
    t = ((t.astype('<M8[m]') # Truncate time to integer minute representation
         .astype('int')      # Convert to integer representation
         // 10) * 10         # Remove any sub 10 minute minutes
        ).astype('<M8[m]')   # convert back to minute timestamp
    return np.array([t, t + np.timedelta64(10, 'm')]).T

例えば:

for t in [np.datetime64('2020-04-01T21:32'), np.datetime64('2052-02-03T13:56:03.172')]:
    s, e = ten_minutes_around(t)
    print(s, t, e)

提供します:

2020-04-01T21:30 2020-04-01T21:32 2020-04-01T21:40
2652-02-03T13:50 2652-02-03T13:56:03.172 2652-02-03T14:00

そして

ten_minutes_around(np.array([
    np.datetime64('2020-04-01T21:32'),
    np.datetime64('2652-02-03T13:56:03.172'),
    np.datetime64('1970-04-01'),
]))

提供します

array([['2020-04-01T21:30', '2020-04-01T21:40'],
       ['2652-02-03T13:50', '2652-02-03T14:00'],
       ['1970-04-01T00:00', '1970-04-01T00:10']], dtype='datetime64[m]')

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=395850&siteId=1