修改数组numpy中的实际元素值

Sas*_*kia 1 python arrays numpy access-modifiers

我无法在循环中修改 numpy 数组的实际值。我的代码如下:

labels_class = np.copy(labels_train)
for label in labels_class:
  labels_class[label] = 1 if (label == classifier) else 0
Run Code Online (Sandbox Code Playgroud)

labels_class- 只是一个大小为 N 且值为 [0, 39] 的 numpy 数组。的值labels_class[label]在循环中是正确的(==修改),但在循环外labels_class保持不变。

我也试过nditer,没用:

 for label in np.nditer(labels_class, op_flags=['readwrite']):
      label = 1 if (label == classifier) else 0
Run Code Online (Sandbox Code Playgroud)

参考资料中,说“要实际修改数组的元素,x 应该用省略号索引”

我怎么做?语法是什么?

sed*_*idw 5

您的迭代器不是创建索引,而是数组中的实际元素

for label in labels_class
Run Code Online (Sandbox Code Playgroud)

上面label的不是索引,而是你试图改变的实际元素

你可以这样做:

for i, label in enumerate(labels_class):
     labels_class[i] = 1 if (label == classifier) else 0
Run Code Online (Sandbox Code Playgroud)