我是靠谱客的博主 丰富哈密瓜,最近开发中收集的这篇文章主要介绍Python的Numpy库中的 nonzero函数,及应用在 hardlim硬限幅函数中numpy.nonzero,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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 )


numpyPython用来科学计算的一个非常重要的库,numpy主要用来处理一些矩阵对象


numpy.nonzero()函数,简记如下:


官方文档链接如下:http://docs.scipy.org/doc/numpy/reference/generated/numpy.nonzero.html


内容如下:

numpy.nonzero

numpy. nonzero ( a )
Returnthe indices of the elements that are non-zero.
Returnsa tuple of arrays, one for each dimension of  a ,containing the indices of the non-zero elements in thatdimension. The values in  a arealways tested and returned in row-major, C-style order. Thecorresponding non-zero values can be obtained with:
a[nonzero(a)]
Togroup the indices by element, rather than dimension, use:
transpose(nonzero(a))
Theresult of this is always a 2-D array, with a row for eachnon-zero element.
Parameters:

a :array_like

Inputarray.
Returns:

tuple_of_arrays :tuple

Indicesof elements that are non-zero.

Seealso

flatnonzero
Returnindices that are non-zero in the flattened version of theinput array.
ndarray.nonzero
Equivalentndarray method.
count_nonzero
Countsthe number of non-zero elements in the input array.



举些使用的例子

>>> b1 = np.array([True, False, True, False])
>>> np.nonzero(b1)

(array([0, 2]),)

可以看到,对于一维的array,输出的是非零值的“下标”。


>>> import numpy as np
>>> a = np.array([[1,2,3],[4,5,6],[7,8,9]])
>>> a > 3
array([[False, False, False],

[ True,
True,
True],

[ True,
True,
True]], dtype=bool)
>>> np.nonzero(a > 3)
(array([1, 1, 1, 2, 2, 2]), array([0, 1, 2, 0, 1, 2]))
>>> np.transpose(
np.nonzero(a > 3)
)

array([[1, 0],
这就是非零元素的坐标

[1, 1],


[1, 2],


[2, 0],


[2, 1],


[2, 2]])




还可以参考:http://www.cnblogs.com/itdyb/p/5766707.htmlhttp://www.th7.cn/Program/Python/201501/351495.shtml

最后

以上就是丰富哈密瓜为你收集整理的Python的Numpy库中的 nonzero函数,及应用在 hardlim硬限幅函数中numpy.nonzero的全部内容,希望文章能够帮你解决Python的Numpy库中的 nonzero函数,及应用在 hardlim硬限幅函数中numpy.nonzero所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部