Задача
Я пытаюсь сопоставить исходную метку 769, 770, 771 и 772 с 0, 1, 2 и 3. Однако, когда я пытаюсь сделать это со словарем, y_test
в следующем не изменяется.
Обратите внимание, что dataDict
- это предварительно обработанный словарь, в котором ключи "y_test" и "y_train_valid" соответствуют массиву 1D типа int32
.
mappingDict = {769: 0, 770: 1, 771: 2, 772: 3}
y_train = dataDict["y_train_valid"].copy()
y_test = dataDict["y_test"].copy()
for label, newLabel in mappingDict.items():
y_train[y_train == label] = newLabel
y_test[y_test == label] == newLabel
MWE
Чтобы воспроизвести то, что произошло, вы можете попробовать следующее и в итоге получите
![enter image description here](https://i.stack.imgur.com/GINMj.png)
y_train = np.array([771, 772, 769, 769, 769, 769, 771, 770, 772, 772], dtype="int32")
y_test = np.array([770, 769, 771, 772, 772, 771, 771, 772, 772, 769], dtype="int32")
mappingDict = {769: 0, 770: 1, 771: 2, 772: 3}
for label, newLabel in mappingDict.items():
y_train[y_train == label] = newLabel
y_test[y_test == label] == newLabel