所以我有一个像这样的源数组:
[[ 9 85 32 100]
[ 7 80 30 100]
[ 2 90 16 100]
[ 6 120 22 100]
[ 5 105 17 100]
[ 0 100 33 100]
[ 3 110 22 100]
[ 4 80 22 100]
[ 8 115 19 100]
[ 1 95 28 100]]
我想用这个更新数组,取决于第一列
[[ 3 110 22 105]
[ 5 105 17 110]
[ 1 95 28 115]]
变成这样
[[ 9 85 32 100]
[ 7 80 30 100]
[ 2 90 16 100]
[ 6 120 22 100]
[ 5 105 17 110]
[ 0 100 33 100]
[ 3 110 22 105]
[ 4 80 22 100]
[ 8 115 19 100]
[ 1 95 28 115]]
但是我在 NumPy 中找不到可以直接执行此操作的函数,因此目前没有比我写的这种方法更好的方法:
def update_ary_with_ary(source, updates):
for x in updates:
index_of_col = np.argwhere(source[:,0] == x[0])
source[index_of_col] = x
这个函数会产生一个循环,所以它不专业,也没有高性能,所以我会使用它,直到有人给我一个更好的方法来处理 NumPy 圈,我不想要另一个圈的解决方案,只是 Numpy