替换除2D Array的特定行中的最后一个元素

问题描述 投票:1回答:1

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

我有一个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循环,但我想避免迭代我的数据中的每个向量。

提前致谢!

python numpy
1个回答
0
投票

你应该一次性完成索引:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.