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

使用numpy将数组分组为嵌套结构

使用numpy将数组分组为嵌套结构

桃花长相依 2021-03-25 10:09:02
假设我有一个像这样的numpy数组(更大,每个日期的重复次数不同):data = np.array([              \   ["2011-01-01", 24, 554, 66],  \   ["2011-01-01", 44, 524, 62],  \   ["2011-01-04", 23, 454, 32],  \   ["2011-01-04", 22, 45,  42],  \   ["2011-01-04", 14, 364, 12]   \])现在,我想按日期将列分组为一个更扁平的结构:[                 ["2011-01-01", [[24, 554, 66], [44, 524, 62]]],   ["2011-01-04", [[23, 454, 32], [22, 45, 42], [14, 364, 12]]]  ]我确实知道如何通过遍历数组和附加元素来做到这一点,但是在我看来,这是极其不可思议的。是否有一些内置的numpy函数来执行此操作,或者有一些针对此类任务的自定义单行代码?
查看完整描述

2 回答

?
森栏

TA贡献1810条经验 获得超5个赞

我不太确定您如何存储日期;您提供的示例将无法实际使用,因为日期将被解释为算术运算。但是,如果您有特定的日期date想要嵌套数组,则可以通过索引轻松获得它:

data[ data[:,0]==date, 1: ]

这将选择每一行以及您想要的日期,然后仅给您数字。如果您希望每个日期都使用此方法,则可以使用以下方法:

[ [ date, data[ data[:,0]==date, 1: ] ] for date in np.unique(data[:,0]) ]

请注意,这将使您将嵌套列表部分作为numpy数组使用,但是如果您希望将其作为普通列表,则将其转换很容易。


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

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信