如何将Numpy数组指定列的所有值除以指定数值
解决Numpy数组指定列元素缩放问题
你的需求是对Numpy数组Y_test_traInv_RMSE的第3列(索引为2)所有元素除以4700,正确的操作命令是:
Y_test_traInv_RMSE[:, 2] = Y_test_traInv_RMSE[:, 2] / 4700
如果执行后没有生效,大概率是因为你的数组是整数类型(如int32/int64),Numpy会自动将除法结果取整(比如数值小于4700时结果会变成0),导致看起来没有变化。解决方法是先将数组转换为浮点类型:
import numpy as np # 转换数组为浮点型(保留原数据的同时支持小数运算) Y_test_traInv_RMSE = Y_test_traInv_RMSE.astype(np.float64) # 再执行列缩放操作 Y_test_traInv_RMSE[:, 2] = Y_test_traInv_RMSE[:, 2] / 4700
你之前尝试的命令错误分析:
Y_test_traInv_RMSE[2][:]和Y_test_traInv_RMSE[2,:]:这两个是选取第3行的所有元素,操作的是行而非列,不符合需求。Y_test_traInv_RMSE[:][2]:等价于Y_test_traInv_RMSE[2],同样是选取第3行,不是目标列。Y_test_traInv_RMSE[:,2]:这个索引逻辑是正确的,但整数类型数组的除法会丢失精度,导致效果不符合预期。
内容的提问来源于stack exchange,提问作者PeterBe
相关产品推荐
相关产品推荐

