我有一個 n 長的陣列串列。每個陣列由兩列組成:A) 1-500 之間的索引值 B) 測量值
每個 A 列略有不同(即缺失或具有額外值)。
我想創建單個大陣列,其中 i) 有一個由所有索引值組成的 A(索引)列,并且 ii)所有 B(測量值)列都經過適當排序,因此它們與原始索引值在同一行中. 缺失值將用 nan 或 0 填充。
陣列示例:
# A B
arr1 = np.array([[ 25, 64],
[ 45, 26]])
arr2 = np.array([[ 8, 54],
[ 25, 2],
[ 45, 84],
[ 128, 22]])
arr3 = np.array([[ 17, 530],
[255, 25]])
我的夢想陣列:
# A B
# arr1 arr2 arr3
dreamArr = array([[8, 0, 54, 0],
[17, 0, 0, 530],
[25, 64, 2, 0],
[45, 26, 84, 0],
[128, 0, 22, 0],
[255, 0, 0, 25]])
我嘗試創建一個np.zeros()陣列并用小陣列替換各個列并卡住了。
然后我嘗試通過 預先獲取所有 A 值np.vstack(),用 洗掉重復項np.unique,np.sort()編輯它們并再次卡住。
非常感謝所有輸入!
uj5u.com熱心網友回復:
使用起來很簡單熊貓:
import pandas as pd
arrs = [arr1, arr2, arr3]
out = (pd
.concat([pd.DataFrame(a).set_index(0) for a in arrs], axis=1)
.fillna(0, downcast='infer')
.sort_index().reset_index().to_numpy()
)
輸出:
array([[ 8, 0, 54, 0],
[ 17, 0, 0, 530],
[ 25, 64, 2, 0],
[ 45, 26, 84, 0],
[128, 0, 22, 0],
[255, 0, 0, 25]])
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/522661.html
上一篇:一組數的最小絕對差
