我目前正在执行分类任务,偶然发现一个问题:
我有一个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循环工作,但我想避免对数据中的每个向量进行迭代。
提前致谢!
您应该一次性全部建立索引:
A[add,:-1] += E[add]
否则,的“花式索引”将A[add]
产生一个副本,修改后不会影响A
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句