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]这行代码实现指定位置的元素进行交换。
本文分享自 机器学习算法与Python学习 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!