替换除2D Array

时间:2018-06-14 11:24:04

标签: python numpy

我目前正在进行分类任务,偶然发现了一个问题:

我有一个2D数组A(1000 x 441)(最后一个元素是分类标签)和一些错误值E(形状1000 x 440)。

我要做的是根据标签从输入数组中减去或添加错误值。

为什么我不能简单地做

add = [1,2,3,4] # just some random indices
sub = [6,7,8,9]
A[add][:,:-1] += E[add]
A[sub][:,:-1] -= E[sub]

A中没有发生任何变化。不确定为什么会发生这种情况。 即工作:

A[0][:-1] += E[0] # this works

它使用简单的for循环,但我想避免迭代我的数据中的每个向量。

提前致谢!

1 个答案:

答案 0 :(得分:0)

你应该一次性完成索引:

A[add,:-1] += E[add]

否则,A[add]的“花式索引”会生成一个副本,修改后不会影响A