Skip to main content
 首页 » 编程设计

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

2025年05月04日13虾米哥

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

labels_class = np.copy(labels_train) 
for label in labels_class: 
  labels_class[label] = 1 if (label == classifier) else 0 

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 

在reference ,据说“要实际修改数组的元素,x 应该用省略号索引”

我该怎么做?语法是什么?

请您参考如下方法:

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

for label in labels_class 

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

你可以这样做:

for i, label in enumerate(labels_class): 
     labels_class[i] = 1 if (label == classifier) else 0