请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

最值归一化

二维数组如果不改成浮点型为什么得出来的结果全是0或1

正在回答 回答被采纳积分+3

1回答

liuyubobobo 2021-10-22 01:27:12

我不确定你的程序哪里有问题,你可以参考这一小节的课程代码,现在自己的环境下运行,看看是不是有一样的问题?如果没有,再看一看自己的代码哪里有问题:https://git.imooc.com/coding-169/coding-169/src/master/04-kNN/07-Feature-Scaling/07-Feature-Scaling.ipynb


注意,在 In[6] 中,我们将 X 的 dtype 改为 float,以能存储浮点型。


继续加油!:)

0 回复 有任何疑惑可以回复我~
  • 提问者 weixin_慕仰6490208 #1
    x_2 = np.random.randint(0, 100, (50, 2))
    x_2 = np.array(x_2, dtype=float)
    # 归一化
    for i in range(x_2.shape[1]):
        x_2[:, i] = (x_2[:, i] - np.min(x_2[:, i])) / (np.max(x_2[:, i]) - np.min(x_2[:, i]))
    print(x_2)
    
    x_2 = np.array(x_2, dtype=float)这一行若注释掉,print出来x_2只有0或1,为什么会这样
    回复 有任何疑惑可以回复我~ 2021-10-23 13:00:35
  • liuyubobobo 回复 提问者 weixin_慕仰6490208 #2
    因为 nparray 默认的 dtype 是 int64。在做 array 之间的运算的时候,dtype 不会自动转换。
    回复 有任何疑惑可以回复我~ 2021-10-23 13:03:52
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信