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 应该用省略号索引”
我怎么做?语法是什么?
您的迭代器不是创建索引,而是数组中的实际元素
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)