提前非常感谢。
我有一个名为 X_test 的 numpy 数组
X_test.shape
(11829, 16, 9)
我正在尝试使用下面的代码对数组每个元素的第二列进行洗牌。然而,X_test_s 似乎没有被洗牌,我不明白为什么。
X_test_s=X_test.copy()
for i in range(len(X_test)):
tempmat=X_test[i]
temp2=tempmat[:,1]
np.random.shuffle(temp2)
tempmat[:,1]=temp2
X_test_s[i]=tempmat
X_test[3][:,1] 数组([0.42449842, 0.15417107, 0.42766631, 0.48785639, 0.67159451, 0.56494192、0.44772967、0.64836325、0.2312566、0.13093981、 0.46462513、0.7001056、0.51953537、0.68637804、0.61034847、 0.57338965])
X_test_s[3][:,1] 数组([0.42449842, 0.15417107, 0.42766631, 0.48785639, 0.67159451, 0.56494192、0.44772967、0.64836325、0.2312566、0.13093981、 0.46462513、0.7001056、0.51953537、0.68637804、0.61034847、 0.57338965])
你可以
X_test_s = X_test.copy()
for i in range(len(X_test)):
tempmat = X_test_s[i]
temp2 = tempmat[:, 1].copy() # Explicitly copy to avoid any reference issues
np.random.shuffle(temp2)
tempmat[:, 1] = temp2
# X_test_s[i] = tempmat # This is actually redundant