我在 python 中有一個二維 numpy 數(shù)組:[[ 1 2 1 3 3] [10 20 30 40 60]]我想有獨特價值的第一行,并添加第二行中的相應(yīng)值刪除列前一起。所以,我的數(shù)組的輸出是這樣的:[[ 1 2 3 ] [ 40 20 100 ]]我是 python 的新手,我想不出更大規(guī)模的有效方法。
3 回答

慕雪6442864
TA貢獻1812條經(jīng)驗 獲得超5個贊
不幸的是,numpy沒有內(nèi)置的 groupby 函數(shù)(盡管有編寫它們的方法)。如果您愿意使用pandas,這將很簡單:
import pandas as pd
>>> pd.DataFrame(a.T).groupby(0,as_index=False).sum().values.T
array([[ 1, 2, 3],
[ 40, 20, 100]])

Smart貓小萌
TA貢獻1911條經(jīng)驗 獲得超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()
添加回答
舉報
0/150
提交
取消