假设我有一个像这样的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数组使用,但是如果您希望将其作为普通列表,则将其转换很容易。
添加回答
举报
0/150
提交
取消