CARVIEW |
?mNumPy??????n???t?⎞???A???̍????̈????FPython?f?[?^????????
NumPy?ɂ͓??t?????????߂?numpy.datetime64?N???X??numpy.timedelta64?N???X??????܂??B?????2?̃N???X???g???????t?̈????????Љ?܂??傤?B
?A?ڊT?v
?@?{?A?ڂ?Python?ɂ??Ă̒m???????ɂ?????x?͐g?ɕt???Ă??????ΏۂƂ??āAPython?Ńf?[?^???????s????ŕK?{?Ƃ???????NumPy??pandas?AMatplotlib?Ȃǂ̊e?탉?C?u?????̊?{?I?Ȏg???????w??ł??????̂ł??B?????āA?????̎g????????????x?o??????ŁA?????????p???ăf?[?^???????s?????߂̑????ݏo?????Ƃ?ړI?Ƃ??Ă??܂??B
?@?O???̓J???t?H???j?A?B?̏Z??i??\?z???郂?f????P??A???͂Ƃ?????@??p???č쐬???Ă݂܂????B????͘b???K?????ƕς??āANumPy?ɂ???????t?̈??????Љ?܂??B
NumPy?œ??t?𑀍삷??
?@NumPy?ɂ͓??t?⎞???A???̍????????????߂Ɏ???2?̃N???X???p?ӂ???Ă??܂??B
- numpy.datetime64?N???X?i?ȉ??Adatetime64?N???X?ƕ\?L?j
- numpy.timedelta64?N???X?i?ȉ??Atimedelta64?N???X?ƕ\?L?j
?@datetime64?N???X?͐???i?O???S???I??j?????????̂ł????APython?ɕW???œY?t?????datetime?N???X?idatetime???W???[???j?Ƃ͈قȂ?A?I???O?̔N???T?|?[?g???Ă??܂??B?܂??Adatetime64?N???X?ł͓??t?Ǝ????͑S?āunaive?v?ȁi??UTC??JST?Ȃǂ̃^?C???]?[?????͎????Ȃ??j???̂ł???_?ɂ͒??ӂ??Ă????????B
???t?Ǝ?????\???I?u?W?F?N?g?Fdatetime64?N???X?̃C???X?^???X
?@datetime64?N???X?̃C???X?^???X?͊ȒP?ɍ쐬?ł??܂??B?ȉ??ɗ???????܂??B
import numpy as np
date = np.datetime64('2024-01-27T05:00:00.123')
print(date) # 2024-01-27T05:00:00.123
date = np.datetime64('2024-01-27')
print(date) # 2024-01-27
?@?ŏ??̗?ł́uYYYY-MM-DDThh:mm:ss.xxx?v?Ƃ????`???œ??t?Ǝ??????L?q???????????^???āAdatetime64?N???X?̃C???X?^???X???쐬???Ă??܂??B????ɂ??A?~???b?P?ʂ܂ł̎??????܂I?u?W?F?N?g???쐬????܂????B???̗?ł́uYYYY-MM-DD?v?`???̕??????^???Ă??܂??B???̂Ƃ??ɂ́A????̓??t??????\???C???X?^???X???쐬????܂??B
?@???????A??????????\???I?u?W?F?N?g?͍쐬?ł??܂???B
t0 = np.datetime64('05:00:00') # ValueError?F??????????\?????Ƃ͂ł??Ȃ?
?@datetime64?N???X?̍쐬???ɓn???镶?????ISO 8601?`???œ??t?܂??͓??t?Ǝ?????\?L????K?v??????܂??B?ȒP?ɂ????A??ŏq?ׂ??悤?ȁuYYYY-MM-DD?v?`???̓??t?i???Ɠ??͏ȗ??\?j???A???t?̌?ɁuT?v?܂??͋????A?????āuhh:mm:ss.xxx?v?`???̎????i???A?b?A?~???b?Ȃǂ͏ȗ??\?j??t???????????ƍl???Ă????????B?ȉ??͂??̗?ł??B
year = np.datetime64('2024') # OK
print(year) # 2024
date_hour = np.datetime64('2024-01-26 05') # ???t?Ǝ????͋????ŋ???Ă?OK
print(date_hour) # 2024-01-26T05
?@?ŏ??̗?ł͔N???????????I?u?W?F?N?g???A???̗?ł͔N?????ɉ????ĉ??????܂ł??????I?u?W?F?N?g???쐬???Ă??܂??B
?@???邢?́A???t?P?ʁidate unit?j???????͎????P?ʁitime unit?j??^???邱?ƂŁA???t?⎞?????ǂ̃??x???܂ŕ\???????w??ł??܂??B?ȉ??ɗ???????܂??B
Y = np.datetime64('2027-01-26T05:00:00.123', 'Y')
print(Y) # 2027
M = np.datetime64('2027-01-26T05:00:00.123', 'M')
print(M) # 2027-01
D = np.datetime64('2027-01-26T05:00:00.123', 'D')
print(D) # 2027-01-26
h = np.datetime64('2027-01-26T05:00:00.123', 'h')
print(h) # 2027-01-26T05
m = np.datetime64('2027-01-26T05:00:00.123', 'm')
print(m) # 2027-01-26T05:00
s = np.datetime64('2027-01-26T05:00:00.123', 's')
print(s) # 2027-01-26T05:00:00
ms = np.datetime64('2027-01-26T05:00:00.123', 'ms')
print(ms) # 2027-01-26T05:00:00.123
?@??2?????Ɏw?肵?Ă???'Y'??'M'?????t?P?ʁidate unit?j?A'h'??'m'???????P?ʁitime unit?j?ł??B???t?P?ʂƂ??Ďw??ł???͈̂ȉ??ł??B
?P?? | ?Ӗ? |
---|---|
'Y' | ?N |
'M' | ?? |
'W' | ?T |
'D' | ?? |
?w??\?ȓ??t?P?? |
?@?????P?ʂƂ??Ďw??ł???͈̂ȉ??ł??i?~???b??菬???ȒP?ʂƂ???'us'?Ȃǂ??w??\?ł????A?????ł͏ȗ????܂??j?B
?P?? | ?Ӗ? |
---|---|
'h' | ?? |
'm' | ?? |
's' | ?b |
'ms' | ?~???b |
?w??\?Ȏ????P?? |
?@?????ŋC??t???Ă????????̂́A??̂悤?ɒP?ʂ??w?肷??ƁA?C???X?^???X???????Ɏw?肵?????t?⎞???œ??t?P?ʂ܂??͎????P?ʂ????????ȒP?ʂ̒l?ɂ??Ă̏??????_?ł??B?ȉ??̃R?[?h?????Ă????????B
M = np.datetime64('2027-01-26T05:00:00.123', 'M')
print(M) # 2027-01
N = np.datetime64(M, 's')
print(N) # 2027-01-01T00:00:00
?@?ŏ??̃R?[?h?ł́A???t?Ǝ??????ڍׂɋL?q???Ȃ???A???t?P?ʂƂ???'M'???w?肵?Ă??܂??B???̂??߁A?쐬???ꂽ?̂?2027?N1????\???I?u?W?F?N?g?ɂȂ??Ă??܂??B?????āA???́uN = np.datetime64(M, 's')?v?Ƃ????R?[?h?ł͍??쐬?????I?u?W?F?N?g????ɍ??x?͎????P?ʂƂ???'s'???w?肵?ăI?u?W?F?N?g???쐬???Ă??܂??B????ƁA???⎞???Ƃ?????ŏ??ɃI?u?W?F?N?g???쐬?????Ƃ??Ɏw?肵???u2027-01-26T05:00:00.123?v?Ƃ͈Ⴄ???̂ɂȂ?܂????B?????????????????邱?Ƃ͊o???Ă??????????悢????????܂???ˁB
?@?Ȃ??A?????܂łɌ??Ă????????????ł͂Ȃ??Anumpy.array?????g???āAdatetime64?N???X?̃C???X?^???X???i?[????z????쐬???邱?Ƃ??\?ł??B???̂Ƃ??ɂ́A?ȉ??̗?Ɏ????悤??dtype?p?????[?^?[?Ɋi?[????l??datetime64?N???X?̃C???X?^???X?ł??邱?Ƃ??w?肵?܂??B
date = np.array(['2024-01-26'], dtype='datetime64')
print(date) # ['2024-01-26']
sec = np.array(['2024-01-26'], dtype='datetime64[s]')
print(sec) # ['2024-01-26T00:00:00']
?@?ŏ??̗?ł́udtype='datetime64'?v?Ǝw?肷?邱?ƂŁA?u'2024-01-26'?v?Ƃ??????t?????ō\??????镶??????t?P?ʂ̃I?u?W?F?N?g???쐬????Ă??܂??B???̎??̗?ł́udtype='datetime64[s]'?v?Ɗp???????̒??Ɏ????P?ʂ́us?v???܂߂邱?Ƃŕb?P?ʂ̏????܂I?u?W?F?N?g???쐬????Ă???̂???????܂??B
?@???̂悤?ɕ?????œ???̓??t?⎞?????w?肷?邾???ł͂Ȃ??A?????l???w?肷?邱?Ƃ??\?ł??B???̒l?͂?????UNIX???ԂƌĂ??l?ŁA1970?N1??1??0??0??0?b???u0?v?Ƃ??܂??B
date = np.array([0], dtype='datetime64[D]')
print(date) # ['1970-01-01']
sec = np.array([0], dtype='datetime64[s]')
print(sec) # ['1970-01-01T00:00:00']
?@???̂Ƃ??A'datetime64'?̏ȗ??`?Ƃ???'M8'???w?肷?邱?Ƃ??\?ł??B
month = np.array([0], dtype='M8[M]')
print(month) # ['1970-01']
?@???t?P?ʂ??????P?ʂ̂ǂ?????w?肷?邩?ŁA?Ӗ????ς???Ă??邱?Ƃ?????̂Œ??ӂ͂??Ă????????B?ȉ??ɗ???????܂??B
a = np.array([-1, 0, 1], dtype='datetime64[s]')
for item in a:
print(f'{item.astype(int): 2}: {item}')
# ?o?͌??ʁF
#-1: 1969-12-31T23:59:59
# 0: 1970-01-01T00:00:00
# 1: 1970-01-01T00:00:01
b = np.array([-1, 0, 1], dtype='datetime64[D]')
for item in b:
print(f'{item.astype(int): 2}: {item}')
# ?o?͌??ʁF
#-1: 1969-12-31
# 0: 1970-01-01
# 1: 1970-01-02
?@2?̗?͋???-1?A0?A1??v?f?Ƃ??郊?X?g???g????datetime64?N???X?̃C???X?^???X???쐬???Ă??܂????Anumpy.array????dtype?p?????[?^?[?Ɏ????P?ʂ?'datetime64[s]'?Ɠ??t?P?ʂ?'datetime64[D]'??n???Ă???_???قȂ?܂??B?O?҂ł?3?̐????l??1970?N1??1??0??0??0?b??1?b?O??̎????ɂȂ??Ă??܂????A??҂ł?1970?N1??1???̑O??̓??t?ɂȂ??Ă??܂??B
?@NumPy?????鑼?̊??ł?dtype?p?????[?^?[?Ɏw???????Adatetime64?N???X?̃C???X?^???X???܂z????쐬?ł?????̂?????܂??B?Ⴆ?Anumpy.arange?????????ł??B
dates = np.arange('2024-02-01', '2024-02-04', dtype='datetime64[D]')
print(dates) # ['2024-02-01' '2024-02-02' '2024-02-03']
print(type(dates)) # <class 'numpy.ndarray'>
print(type(dates[0])) # <class 'numpy.datetime64'>
secs = np.arange('2024-02-01 00:00:00', '2024-02-01 00:00:05',
dtype='datetime64[s]')
print(secs)
# ?o?͌??ʁF
#['2024-02-01T00:00:00' '2024-02-01T00:00:01' '2024-02-01T00:00:02'
# '2024-02-01T00:00:03' '2024-02-01T00:00:04']
?@?ŏ??̗?ł͓??t??\??????????????l?ƏI???l?Ɏw?肵?āA?????͈̔͂Ɏ??܂???t???쐬????悤?Ɂudtype='datetime64[D]'?v???w?肵?Ă??܂??B???̗?ł́A???l?ɂ??ĘA?????鎞?????쐬???Ă??܂??B
?@???̂悤?ɂ??č쐬????datetime64?N???X?̃C???X?^???X?́i????ɈӖ???????̂ł???j???Z???\?ł??B?Ⴆ?A??????t????ʂ̓??t?????Z????A???̊Ԋu?i???????j?ׂ???ł??傤?B?ȉ??ɗ???????܂??B
date0 = np.datetime64('2024-01-27T05:00:00')
date1 = np.datetime64('2024-01-26T05:00:00')
delta = date0 - date1
print(delta) # 86400 seconds
print(type(delta)) # <class 'numpy.timedelta64'>
date2 = date0 + delta
print(date2) # 2024-01-28T05:00:00
?@???̗?ł?datetime64?N???X?̃C???X?^???X??2?쐬???A???Z?????Ă??܂??B?ϐ?delta?ɂ͂?????t????ʂ̓??t?????Z???????????i?[????Ă??܂??B???̒l??print???̌??ʂ?????Ε?????ʂ?A?u86400?v?b?ł??i24???Ԃ̕b???j?B?܂??A??̗??????ƁA???Z???ʂ̌^??timedelta64?N???X?ɂȂ??Ă??邱?Ƃ???????܂??B
?@?????Ǝ??ԍ??͉??Z???\?ł??i2024?N1??27????5??0??0?b??1???𑫂??Ƃǂ??Ȃ?ł??傤?j?B?Ƃ??????Ƃ????Ă???̂??Ō?̕????ł??B??????????ƌv?Z?ł??Ă??܂??ˁB
???ԍ???\???I?u?W?F?N?g?Fnumpy.timedelta64?N???X?̃C???X?^???X
?@timedelta64?N???X?̃C???X?^???X?͎??ԍ???\???l??^???邱?Ƃō쐬?ł??܂??B
t_delta0 = np.timedelta64(1)
print(t_delta0) # 1 generic time units
?@???̗?ł͐????l?u1?v??^???Ă??܂????A????ɂ??쐬???ꂽtimedelta64?N???X???\?????ԍ??́u1 generic time units?v?i?ėp?s?͂?悤?t?̎????P??1?P?ʁj?ƂȂ??Ă??܂??B???ꂪ?Ӗ?????͉̂??ł??傤?B?ȉ??͍??쐬????timedelta64?N???X?̃I?u?W?F?N?g????t?Ǝ????ɉ??Z???Ă݂?R?[?h?ł??B
t_delta0 = np.timedelta64(1)
print(t_delta0) # 1 generic time units
date0 = np.datetime64('2024-01-26')
print(date0) # 2024-01-26
print(date0 + t_delta0) # 2024-01-27
time0 = np.datetime64('2024-01-26T05:00:00')
print(time0) # 2024-01-26T05:00:00
print(time0 + t_delta0) # 2024-01-26T05:00:01
?@?ŏ??̗?ł͂??̒l????t?ɉ??Z?????Ă??܂??B????ɂ??u2024-01-26?v????u2024-01-27?v?ւƓ??t??1????ɐi???Ƃ???????܂??B???̗?ł͂?????????ɉ??Z?????Ă??܂??B????ƁA???x?́u2024-01-26T05:00:00?v????u2024-01-26T05:00:01?v?ւƎ?????1?b?i???Ƃ???????܂??B???ɒP?ʂ??w?肹???ɍ쐬????timedelta64?N???X?̃C???X?^???X???g???ē??t?⎞???Ƃ̉??Z???s???ƁA???Z?Ώۂ?datetime64?N???X?̃C???X?^???X???\???Ă?????̂??????ɂ???āA???̌??ʂ??ς???Ă???Ƃ??????Ƃł??B
?@???ꂪ?g???₷?????Ƃ?????A?????Ƃ????ƒP?ʂ??w?肵???????Ƃ?????ł??傤?B?????????Ƃ??ɂ́Adatetime64?N???X?̃C???X?^???X?쐬?Ɠ??l?ɁA???t?P?ʂ⎞???P?ʂ??w?肵?܂??B
t_delta = np.timedelta64(60 * 60 * 12 + 1, 's')
print(t_delta) # 43201 seconds
?@?????ő?2?????Ɏw?肷??P?ʂ͐?ق?datetime64?N???X?̃C???X?^???X?????Ŏg?p???????̂Ɠ??l?ł??B??̗?ł?12???ԁ{1?b?̎???????\???I?u?W?F?N?g???쐬???Ă??܂??B
?@??????g???āA???鎞???Ɏ??ԍ??????Z???Ă݂܂??傤?B
dt = np.datetime64('2024-01-26 00:00:00')
print(dt + t_delta) # 2024-01-26T12:00:01
?@?????ł́A2024?N1??26??0??0??0?b??\??datetime64?N???X?̃I?u?W?F?N?g???쐬???āA????ɐ?قǂ?timedelta64?N???X?̃I?u?W?F?N?g?????Z???Ă???̂ŁA???ʂ?2024?N1??26??12??0??1?b?ɂȂ?܂????B
?@???x?͓??t?݂̂?\??datetime64?N???X?̃I?u?W?F?N?g?ɁA????timedelta64?N???X?̃I?u?W?F?N?g?????Z???Ă݂܂??B
dt = np.datetime64('2024-01-26')
print(dt + t_delta) # 2024-01-26T12:00:01
?@???ʂ?????ƁA0??0??0?b????_?Ƃ??Ă?????12???Ԃ?1?b?????Z????Ă??܂??B???̂悤?ɁA???t?⎞???Ɋւ??ē??Ɏw?肪?Ȃ??????ɑ??鉉?Z??1???A1???A0???A0???A0?b?Ȃǂ???_?Ƃ??čs???܂??B
?@?܂??A????timedelta64?N???X?̃I?u?W?F?N?g?Ɠ??t?P?ʂ⎞???P?ʂ??w?肵?āA?V????timedelta64?N???X?̃I?u?W?F?N?g???쐬???邱?ƂŒP?ʂ??ϊ??ł??܂??B?ȉ??ɗ???????܂??B
d_delta = np.timedelta64(1, 'D') # 1????\??timedelta64?I?u?W?F?N?g
print(d_delta) # 1 days
t_delta = np.timedelta64(d_delta, 'h') # ????͉????Ԃ?
print(t_delta) # 24 hours
?@?????ł?1????\??timedelta64?N???X?̃I?u?W?F?N?g????ɁA24???Ԃ?\???I?u?W?F?N?g???쐬???܂????i?܂?A?P?ʂ̕ϊ????ł??܂????j?B
?@???????A1?J???????????͂??ꂪ???????ɂ???ĈقȂ?܂??B?????????l?Ɋւ??Ă͗?O?????????邱?Ƃɂ͒??ӂ??Ă????????B
m_delta = np.timedelta64(1, 'M')
d_delta = np.timedelta64(m_delta, 'D') # TypeError
???t?⎞???łȂ????Ƃ?\??NaT?iNot a Time?j
?@datetime64?N???X??timedelta64?N???X?ł́A'NaT'??^???āA?C???X?^???X???쐬???邱?ƂŁA???ꂪ???t?⎞???ł͂Ȃ????Ƃ?\?????Ƃ??\?ł??B
nat0 = np.datetime64('nat')
print(nat0) # NaT
nat1 = np.timedelta64('NaT')
print(nat1) # NaT
?@?u'nat'?v?u'NaT'?v?̂ǂ?????w?肵?Ă????̃I?u?W?F?N?g???쐬?ł??Ă??邱?Ƃ??番????悤?ɁA?啶?????????͋?ʂ???܂???B
?@?܂??ANaT?I?u?W?F?N?g???܂??Z?̌??ʂ?NaT?I?u?W?F?N?g?ɂȂ?܂??B
d0 = np.datetime64('2024-01-26')
print(d0 + nat1) # NaT
d_delta = np.timedelta64(1, 'D')
print(d_delta + nat1) # NaT
?@?Ƃ???ŁA???̂悤??CSV?t?@?C???????????Ƃ??܂??傤?B
from pathlib import Path
print(Path('test.csv').read_text())
# ?o?͌??ʁF
#date,value0,value1
#2024-01-01,5.,2.
#2024-01-02,8.,7.
#2024-01-03,1.,10.
#2024-01-04,6.,2.
?@???̂܂܁A?ǂݍ??ނƂ???????O?????????܂??B
data = np.loadtxt('test.csv', delimiter=',', skiprows=1) # ValueError
?@?????NumPy?̔z??͑S?Ă??????f?[?^?^?ł???K?v??????A??0??̓??t?f?[?^???????_?ɂ͕ϊ??ł??Ȃ?????ł??B?????????f?[?^???g?p????ɂ͂ǂ?????悢???B?????????̘b??Ƃ??܂??傤?B
Copyright© Digital Advantage Corp. All Rights Reserved.
?A?C?e?B???f?B?A????̂??m?点
??IT eBook
RSS?ɂ???
?A?C?e?B???f?B?AID?ɂ???
???[???}?K?W???o?^
??IT?̃??[???}?K?W???́A ???????A???ׂĖ????ł??B???Ѓ??[???}?K?W???????w?ǂ????????B
ITmedia?̓A?C?e?B???f?B?A??????Ђ̓o?^???W?ł??B
???f?B?A?ꗗ | ????SNS | ?L???ē? | ???₢???킹 | ?v???C?o?V?[?|???V?[ | RSS | ?^?c??? | ?̗p??? | ??????