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.,hU = .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 排序
例子:
ll=[8,0,3,6,1,0,5,3,8,9]
print (ll,=True) #降序print (ll,=False) #升序
结果:
[9, 8, 8, 6, 5, 3, 3, 1, 0, 0][0, 0, 1, 3, 3, 5, 6, 8, 8, 9]
25、.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 =.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. 0. -0. -0. 0.] [ 0. 0. -0. 1. -0. ] [-0. 0. -0. -0. 0. ]]
s: [ 4. 3. 2. 0. ]
=== [[ 1. 0. 0. 0. 2.] [ 0. 0. 3. 0. 0.] [ 0. 0. 0. 0. 0.] [ 0. 4. 0. 0. 0.]]
关于什么是奇异值分解,请参考奇异值分解
26、.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=.rand(3,3)
print rr
print (rr-0.5)
.0*(rr-0.5)
结果:
[[0] [0] [0] [4]]
[[ 0. 0. 0.] [ 0. 0. 0.] [ 0. 0. 0.]]
[[-0. -0. -0.] [ 0. 0. 0.] [-0. 0. -0.]]
[[-0. -0. -0.] [ 0. 0. 0.] [-0. 0. -0.]]
.rand(3,3)随机获取3*3个0-1之间的数字
27、
例子:
delta = 0.25x = (-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]
获取指定起始位置,指定步长的一系列数。
28、()
例子:
x =[[1,0,0,0,2],[0,0,3,0,0]]print xnz=(x)
print nz
print nz[0]
结果:
[[1, 0, 0, 0, 2], [0, 0, 3, 0, 0]]
(array([0, 0, 1]), array([0, 4, 2]))[001]
()函数返回矩阵中非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]]) =A[0,:]
print [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]
print ll[3:6]+ll[0:3]这行代码实现指定位置的元素进行交换。
加入IP合伙人(站长加盟) | 全面包装你的品牌,搭建一个全自动交付的网赚资源独立站 | 晴天实测8个月运营已稳定月入3W+
限时特惠:本站每日持续更新海量内部创业教程,一年会员只需98元,全站资源免费无限制下载点击查看会员权益
站长微信: qtw123cn
