前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python: numpy总结(3)

Python: numpy总结(3)

作者头像
昱良
发布2018-04-04 16:27:12
5490
发布2018-04-04 16:27:12
举报
文章被收录于专栏:机器学习算法与Python学习

21、dot矩阵点积 例子:

ll = [[1,2,3],[4,5,6],[7,8,9]]ld = dot(ll,ll)

print 'dot:',ld

print mat(ll)*mat(ll)

结果:

dot: [[ 30 36 42]

[ 66 81 96]

[102 126 150]]

[[ 30 36 42] [ 66 81 96] [102 126 150]]

22、eye 单元矩阵 例子:

print 'eye:',eye(2)#单元矩阵

结果:

eye: [[ 1. 0.] [ 0. 1.]]

23 eig 矩阵的特征值和特征向量 例子:

A= mat([[1,0,0,0,2],[0,0,3,0,0],[0,0,0,0,0],[0,4,0,0,0]]) U = A*A.T lamda,hU = linalg.eig(U)

print 'hU:',hU

print lamda

结果:

hU: [[ 1. 0. 0. 0.] [ 0. 1. 0. 0.] [ 0. 0. 1. 0.] [ 0. 0. 0. 1.]] [ 5. 9. 0. 16.]

24 sorted 排序 例子:

ll=[8,0,3,6,1,0,5,3,8,9]

print sorted(ll,reverse=True) #降序print sorted(ll,reverse=False) #升序

结果:

[9, 8, 8, 6, 5, 3, 3, 1, 0, 0][0, 0, 1, 3, 3, 5, 6, 8, 8, 9]

25、linalg.svd 奇异值分解 例子:

A=mat([[1,0,0,0,2],[0,0,3,0,0],[0,0,0,0,0],[0,4,0,0,0]]) U,S,VT =linalg.svd(A)

print 'U:',U

print 'V:',VT

print 's:',S

print '===',U*(mat(diag(S))*eye(4,5))*VT

结果:

U: [[ 0. 0. 1. 0.] [ 0. 1. 0. 0.] [ 0. 0. 0. -1.] [ 1. 0. 0. 0.]]

V: [[ 0. 1. -0. -0. -0. ] [ 0. 0. 1. -0. -0. ] [ 0.4472136 0. -0. -0. 0.89442719] [ 0. 0. -0. 1. -0. ] [-0.89442719 0. -0. -0. 0.4472136 ]]

s: [ 4. 3. 2.23606798 0. ]

=== [[ 1. 0. 0. 0. 2.] [ 0. 0. 3. 0. 0.] [ 0. 0. 0. 0. 0.] [ 0. 4. 0. 0. 0.]]

关于什么是奇异值分解,请参考奇异值分解

26、random.rand 例子:

A=mat([[1,0,0,0,2],[0,0,3,0,0],[0,0,0,0,0],[0,4,0,0,0]])

print A[:,1] #获取3*3个0-1之间的数字 rr=random.rand(3,3)

print rr

print (rr-0.5)

print 2.0*(rr-0.5)

结果:

[[0] [0] [0] [4]]

[[ 0.30446153 0.40653841 0.40143809] [ 0.77970727 0.57491894 0.85801586] [ 0.33509491 0.64652856 0.48276137]]

[[-0.19553847 -0.09346159 -0.09856191] [ 0.27970727 0.07491894 0.35801586] [-0.16490509 0.14652856 -0.01723863]]

[[-0.39107693 -0.18692318 -0.19712383] [ 0.55941453 0.14983789 0.71603172] [-0.32981018 0.29305712 -0.03447726]]

random.rand(3,3)随机获取3*3个0-1之间的数字

27、arange 例子:

delta = 0.25 x = arange(-3.0, 3.0, delta) print x

结果:

[-3. -2.75 -2.5 -2.25 -2. -1.75 -1.5 -1.25 -1. -0.75 -0.5 -0.25 0. 0.25 0.5 0.75 1. 1.25 1.5 1.75 2. 2.25 2.5 2.75]

arange获取指定起始位置,指定步长的一系列数。

28、nonzero() 例子:

x =[[1,0,0,0,2],[0,0,3,0,0]]print x nz=nonzero(x)

print nz

print nz[0]

结果:

[[1, 0, 0, 0, 2], [0, 0, 3, 0, 0]]

(array([0, 0, 1]), array([0, 4, 2]))[0 0 1]

nonzero()函数返回矩阵中非0元素的位置 nz的返回值意义如下: 第一行是所有非零数所在行值 第二行是所有非零值所在列值

29、获取指定位置的元素 例子:

A=mat([[1,0,0,0,2],[0,0,3,0,0],[0,0,0,0,0],[0,4,0,0,0]]) sample =A[0,:]

print sample

print sample[0] ll=mat([3,4,5])

for i in range(5):

if sum(ll==i):

print i

结果:

[[1 0 0 0 2]]

[[1 0 0 0 2]]

3 4

A[0,:]的意义是获取第0行的所有元素 if sum(ll==i):的意义是只要i存在ll矩阵中,if就是True ll必须是mat转换的矩阵。列表好像不行。并且还是单行的矩阵。

第二个例子:

A=mat([[1,0,0,0,2],[0,0,3,0,0],[0,0,0,0,0],[0,4,0,0,0]]) #根据ind序列索引获取矩阵A中的数据 ind=[2,1,3,0]

print A[ind,0]

结果:

[[0] [0] [0] [1]]

30、zip 例子:

ll=[1,2,3,4,5,6] #可以互换指定区域的位置print ll[3:6]+ll[0:3] #成对获取x、y的值l1=[1,2,3] l2=[4,5,6]

for x,y in zip(l1,l2):

`print x,y

结果:

[4, 5, 6, 1, 2, 3]

1 42 53 6

print ll[3:6]+ll[0:3]这行代码实现指定位置的元素进行交换。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-06-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习算法与Python学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档