TypeError: unhashable type: 'matrix'解决方法 以及 Python3下map函数的显示问题、 python numpy中nonzero()的用法

来源:互联网 发布:差分和微分的区别 知乎 编辑:程序博客网 时间:2024/05/21 16:56

因为使用的Python3的缘故,所以使用《机器学习实战》里面的代码总是遇到各种问题,这次是第9章程序清单9-2回归树切分函数里的一行:

for splitVal in set(dataSet[:,featIndex]): 

即matrix类型不能被hash。
把代码改为如下即可:

for splitVal in set((dataSet[:,featIndex].T.A.tolist())[0]):  

Python3下map函数的显示问题

举一个简单的例子,下面这个例子在Python2.7下是可以正常显示的:

ls = [1,2,3]rs = map(str, ls) #打印结果['1', '2', '3']lt = [1, 2, 3, 4, 5, 6]def add(num):    return num + 1rs = map(add, lt)print rs#[2,3,4,5,6,7]

但是在py3 下输入:

ls=[1,2,3]rs=map(str,ls)print(rs)

显示的却是:

<map at 0x3fed1d0>

而不是我们想要的结果,这也是Python3下发生的一些新的变化,如果我们想得到需要的结果需要这样写:

ls=[1,2,3]rs=map(str,ls)print(list(rs))

python numpy中nonzero()的用法

http://blog.csdn.net/roler_/article/details/42395393