我需要使用索引数组将一个数组赋值给另一个数组。 但是一些值超出了范围...
a = np.array([0, 1, 2, 3, 4])
b = np.array([10, 11, 12, 13, 14])
indexes = np.array([0, 2, 3, 5, 6])
a
和b
大小相同。如果我使用a[indexes] = b
,它会抛出IndexError异常。我希望它忽略超出范围的值5和6,以便a
变为[10, 1, 11, 12, 4]
。
我尝试了indexes[indexes > b.size()] = 0
,但这会破坏索引0处的值。应该如何解决?
编辑
索引可能不一定是有序的。例如:
indexes = np.array([2, 3, 0, 5, 6])
a
应变为 np.array([12, 1, 10, 11, 4])