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

因为使用的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 + 1
rs = 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


版权声明:本文为StromCruise原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。