我想从年,月和日的一维向量中创建NumPy datetime64对象的向量,并且反向,即从每日datetime64向量中提取年,月或日的向量.我正在使用NumPy 1.7.0b2.
例如,假设
years = [1990, 1992, 1995, 1994]
months = [1, 6, 3, 7]
days = [3, 20, 14, 27]
Run Code Online (Sandbox Code Playgroud)
现在我想使用这些年,月和日创建长度为4的np.datetime64向量.有没有使用Python循环的方法?
另一方面,假设dates
是数据类型为np.datetime64的向量,频率为每日.然后我会能够做类似的东西x.DAYS()
并找回一个矢量[3, 20, 14, 27]
.
import numpy as np
def compose_date(years, months=1, days=1, weeks=None, hours=None, minutes=None,
seconds=None, milliseconds=None, microseconds=None, nanoseconds=None):
years = np.asarray(years) - 1970
months = np.asarray(months) - 1
days = np.asarray(days) - 1
types = ('<M8[Y]', '<m8[M]', '<m8[D]', '<m8[W]', '<m8[h]',
'<m8[m]', '<m8[s]', '<m8[ms]', '<m8[us]', '<m8[ns]')
vals = (years, months, days, weeks, hours, minutes, seconds,
milliseconds, microseconds, nanoseconds)
return sum(np.asarray(v, dtype=t) for t, v in zip(types, vals)
if v is not None)
years = [1990, 1992, 1995, 1994]
months = [1, 6, 3, 7]
days = [3, 20, 14, 27]
print(compose_date(years, months, days))
Run Code Online (Sandbox Code Playgroud)
产量
array(['1990-01-03', '1992-06-20', '1995-03-14', '1994-07-27'], dtype='datetime64[D]')
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1025 次 |
最近记录: |