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

通过添加相应的值在 2D numpy 数组中创建唯一行

通过添加相应的值在 2D numpy 数组中创建唯一行

慕慕森 2021-07-30 21:15:18
我在 python 中有一个二维 numpy 数组:[[ 1  2  1  3  3] [10 20 30 40 60]]我想有独特价值的第一行,并添加第二行中的相应值删除列前一起。所以,我的数组的输出是这样的:[[  1   2   3 ] [ 40  20 100 ]]我是 python 的新手,我想不出更大规模的有效方法。
查看完整描述

3 回答

?
慕雪6442864

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

不幸的是,numpy没有内置的 groupby 函数(尽管有编写它们的方法)。如果您愿意使用pandas,这将很简单:


import pandas as pd


>>> pd.DataFrame(a.T).groupby(0,as_index=False).sum().values.T


array([[  1,   2,   3],

       [ 40,  20, 100]])


查看完整回答
反对 回复 2021-08-03
?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

a = np.array([[ 1,  2,  1,  3,  3],

              [10, 20, 30, 40, 60]])


unique_values = np.unique(a[0])

new_array = np.zeros((2, len(unique_values)))

for i, uniq in enumerate(np.unique(a[0])):


    new_array[0][i] = uniq

    new_array[1][i] = np.where(a[0]==uniq,a[1],0).sum()


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

添加回答

举报

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