Python的Numpy库中的 nonzero函数,及应用在 hardlim硬限幅函数中
在学习 邓捷的《机器学习 算法原理与编程实践》 中 p168页的 激活函数 hardlim的时候, 看不懂。
查询相关的知识点,学习了下。
先看 python代码
#! /usr/bin/python
from numpy import *
'''
print a
[[-4 -3 -2]
[-1 0 1]
[ 2 3 4]]
print dataset.A
[[-4 -3 -2]
[-1 0 1]
[ 2 3 4]]
print dataset.A > 0
[[False False False]
[False False True]
[ True True True]]
print nonzero( dataset.A > 0 )
(array([1, 2, 2, 2]), array([2, 0, 1, 2]))
print hardlim( a )
[[0 0 0]
[1 1 1]
[1 1 1]]
'''
def hardlim(dataset):
dataset[ nonzero( dataset.A > 0 )[0] ] = 1
dataset[ nonzero( dataset.A <=0 )[0] ] = 0
return dataset
if __name__ == "__main__":
a = arange(9) - 4
#print a
#[-4 -3 -2 -1 0 1 2 3 4]
a = a.reshape(3, 3)
#print a
#[[-4 -3 -2]
# [-1 0 1]
# [ 2 3 4]]
a = mat(a)
#print a
#[[-4 -3 -2]
# [-1 0 1]
# [ 2 3 4]]
print a
print hardlim( a )
|
numpy是Python用来科学计算的一个非常重要的库,numpy主要用来处理一些矩阵对象
numpy.nonzero()函数,简记如下:
官方文档链接如下:http://docs.scipy.org/doc/numpy/reference/generated