如何修改numpy数组中的元素?

时间:2017-11-08 05:02:54

标签: python numpy

这是我的代码:

a=np.arange('2017-01-01', '2017-01-09', dtype='datetime64[D]')

我得到了以下输出:

array(['2017-01-01', '2017-01-02', '2017-01-03', '2017-01-04',
       '2017-01-05', '2017-01-06', '2017-01-07', '2017-01-08'], dtype='datetime64[D]')

我想从每个元素中删除多年。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:0)

你想剥夺 out 的岁月?

您可以创建public void retrieve(final Qu qu) { db.collection(COLLECTION).document("someDoc") .get() .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() { @Override public void onComplete(@NonNull Task<QuerySnapshot> task) { if (task.isSuccessful()) { DocumentSnapshot doc = task.getResult(); ques.setQu(q.toObject(Qu.class)); } } } } }).; } 对象并使用Series访问者。

dt

或者,使用pd.Series(a).dt.strftime('%m-%d') 0 01-01 1 01-02 2 01-03 3 01-04 4 01-05 5 01-06 6 01-07 7 01-08 dtype: object

pd.to_datetime

答案 1 :(得分:0)

Y单位的日期为:

In [870]: a.astype('datetime64[Y]')
Out[870]: array(['2017', '2017', '2017', '2017', '2017', '2017', '2017', '2017'], dtype='datetime64[Y]')

或者从其余日期中减去第一个日期,得到timedelta64

In [875]: a-a[0]
Out[875]: array([0, 1, 2, 3, 4, 5, 6, 7], dtype='timedelta64[D]')

tolist将日期数组转换为datetime个对象

列表
In [888]: a.tolist()
Out[888]: 
[datetime.date(2017, 1, 1),
 datetime.date(2017, 1, 2),
 datetime.date(2017, 1, 3),
 datetime.date(2017, 1, 4),
 datetime.date(2017, 1, 5),
 datetime.date(2017, 1, 6),
 datetime.date(2017, 1, 7),
 datetime.date(2017, 1, 8)]

可以形成字符串

In [889]: [x.strftime('%m-%d') for x in a.tolist()]
Out[889]: ['01-01', '01-02', '01-03', '01-04', '01-05', '01-06', '01-07', '01-08']

没有datetime64格式只包含月份和日期。

tolist datetime.timedelta`对象上的

itemtimedelta64[...]' produces a