为了账号安全,请及时绑定邮箱和手机立即绑定

使用for循环使用numpy计算新列

使用for循环使用numpy计算新列

三国纷争 2021-06-14 05:12:47
我在 numpy 中有一个名为 np_charge 的数据集,其大小为 (1430, 258)。我的想法是创建一个新列,其中第一行包含方程的输出第一行:np_charge[-1][1]-np_charge[0][1]第二行: np_charge[-1][1]-np_charge[1][1] 。. .最后一行:np_charge[-1][1]-np_charge[1429][1]我试图在互联网上找到解决方案,但找不到任何解决方案。我的解决方案如下所示:e=[]n_rows=np_charge.shape[0]-1for i in range(n_rows):    e[i]=(np_charge[-1][1]-np_charge[i][1])但我收到此错误代码:---------------------------------------------------------------------------IndexError                                Traceback (most recent call last)<ipython-input-988-9463a5cb0618> in <module>() 15  16 for i in range(n_rows):---> 17     e[i]=np_charge[-1][1]-np_charge[i][1] 18  19 IndexError: list assignment index out of range谢谢,R
查看完整描述

2 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

正如您在您的评论之一中所阐明的那样。创建 MVE


from datetime import datetime

from dateutil.relativedelta import relativedelta

import random

a=np.array([datetime.now()-relativedelta(months=random.randint(0,100)) for i in range(10)])

print(a)

输出:


 array([datetime.datetime(2014, 10, 12, 9, 0, 31, 696000),

           datetime.datetime(2018, 9, 12, 9, 0, 31, 696000),

           datetime.datetime(2014, 4, 12, 9, 0, 31, 696000),

           datetime.datetime(2011, 4, 12, 9, 0, 31, 696000),

           datetime.datetime(2015, 10, 12, 9, 0, 31, 696000),

           datetime.datetime(2011, 11, 12, 9, 0, 31, 696000),

           datetime.datetime(2016, 3, 12, 9, 0, 31, 696000),

           datetime.datetime(2017, 10, 12, 9, 0, 31, 696000),

           datetime.datetime(2010, 6, 12, 9, 0, 31, 696000),

           datetime.datetime(2016, 2, 12, 9, 0, 31, 696000)], dtype=object)

tn 我假设数组的最后一个索引。所以


result=a[len(a)-1]-a


[datetime.timedelta(488),

 datetime.timedelta(-943),

 datetime.timedelta(671),

 datetime.timedelta(1767),

 datetime.timedelta(123),

 datetime.timedelta(1553),

 datetime.timedelta(-29),

 datetime.timedelta(-608),

 datetime.timedelta(2071),

 datetime.timedelta(0)]


查看完整回答
反对 回复 2021-06-16
  • 2 回答
  • 0 关注
  • 281 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号