老师,我把你在pycharm的程序中 distances =[]的中括号改成()小括号,结果变成了0,是不是因为小括号的优先级大于中括号呢?

来源:4-2 scikit-learn中的机器学习算法封装

B哥Roger

2021-08-23

写回答

1回答

liuyubobobo

2021-08-23

不是,和优先级无关。是因为 [] 和 () 表达的意思完全不同。


[] 是指一个数组,我们的 distance 是一个数组。


但如果写成

(sqrt(np.sum((x_train - x) ** 2)) for x_train in self._X_train)

这是一个生成表达式。


你可以使用打印出 distance 的方式,来具体的看一下 distance 究竟是什么。


随便写一个测试程序:b 用小括号包着,是一个生成表达式。c 用中括号,是一个数组(list)

//img.mukewang.com/szimg/61236c7b091c8ae005570279.jpg


继续加油!:)

0
1
B哥Roger
好,懂了!谢谢老师!
2021-08-23
共1条回复

Python3入门机器学习 经典算法与应用  

Python3+sklearn,兼顾原理、算法底层实现和框架使用。

5940 学习 · 2455 问题

查看课程