Python: numpy总结(3)

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学习(guodongwei1991)

原文发表时间:2016-06-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏chenjx85的技术专栏

leetcode-598-Range Addition II

1101
来自专栏mathor

科学计算库Numpy

 genfromtxt函数里穿了三个参数,分别是 要打开的文档名称,分隔符,以什么类型存储  打印结果:

1194
来自专栏崔庆才的专栏

TensorFlow layers模块用法

TensorFlow 中的 layers 模块提供用于深度学习的更高层次封装的 API,利用它我们可以轻松地构建模型,这一节我们就来看下这个模块的 API 的具...

1.1K8
来自专栏Python小屋

Python符号计算入门及隐函数图像绘制

感谢国防科大刘万伟老师提供了隐函数图像绘制的原始问题以及完美答案,我又补充了一点符号计算的基础知识。 >>> from sympy import * #定义符号...

3965
来自专栏木子昭的博客

机器学习三剑客之NumpyNumpy计算(重要)

NumPy是Python语言的一个扩充程序库。支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。Numpy内部解除了Python的PI...

3706
来自专栏数据结构与算法

25:最长最短单词

25:最长最短单词 总时间限制: 1000ms 内存限制: 65536kB描述 输入1行句子(不多于200个单词,每个单词长度不超过100),只包含字母、空格...

39010
来自专栏calmound

hust 1607 Triangles(经典好题)

题意:给出一定的点,然后再给出哪些点相连,问最后这些相连点的组成多少个三角形,hash的应用 分析:转载牛人的思想 题意:给一些点的坐标和里面的点构成的一些线段...

2988
来自专栏Python小屋

Python+numpy实现函数向量化

Python本身对向量操作的支持并不是很好,需要借助列表推导式或函数式编程来实现,例如: >>> import random # 生成随机测试数据 >>> x...

8155
来自专栏小鹏的专栏

tf API 研读2:math

TF API数学计算 tf...... :math (1)刚开始先给一个运行实例。         tf是基于图(Graph)的计算系统。而图的节点则是由操作(...

7805
来自专栏机器之心

资源 | 从数组到矩阵的迹,NumPy常见使用大总结

4259

扫码关注云+社区

领取腾讯云代金券