我目前正在进行分类任务,偶然发现了一个问题:
我有一个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循环,但我想避免迭代我的数据中的每个向量。
提前致谢!
答案 0 :(得分:0)
你应该一次性完成索引:
A[add,:-1] += E[add]
否则,A[add]
的“花式索引”会生成一个副本,修改后不会影响A
。