Python: numpy总结(2)

11、xrange 例子:

for i in xrange(3):

print i test=[1,2,3,4]

print test[:]

print test[2:3]

for i in xrange(2,5):

print i

结果:

0 1 2

[1, 2, 3, 4] [3]

2 3 4

xrange用于循环中,参数为一个整数的话,可循环遍历小于该参数的值。两个参数,则循环遍历两个整数之间的值。 test[:]则表示获取test列表中的所有元素。 test[2:3]则表示获取从第2个位置到第三个位置间的元素。

12、strptime 例子:

import timefrom datetime

import datetime,date dd = datetime.strptime('2014-04-03T10:53:49.875Z', "%Y-%m-%dT%H:%M:%S.%fZ") print time.mktime(dd.timetuple()) #1396493629.0

结果:

1396493629.0

strptime把时间按照指定的格式转换。处理时间的时候会用到这个函数。

13、tuple和数组转换成字符串 例子:

tuple =(1,2,3)

print tuple[len(tuple)-1]

print tuple[-1]

print 9.99.__repr__()

print str(9.99)

结果:

3 3 9.99 9.99

上面的示例中tuple是一个元组,访问元素的时候,可以通过[index]这种方式访问。 访问最后一个元素的时候,可以通过[-1]访问. 那么访问倒数第二个元素:

print tuple[-2] 输出结果:2

另外,数字转换成字符串有两种方式:

_ _ repr _ _() str()

14、transpose和.T 例子:

aa =[[1],[2],[3]]aa= mat(aa) #将列表转换成矩阵,并存放在aa中

print aa

print aa.transpose()#将矩阵进行转置

print aa #transpose()进行矩阵的转置,aa并没有改变

print '*'*20print aa.T

print aa #T转置矩阵,也没有发生改变

输出结果:

[[1][2][3]]

[[1 2 3]]

[[1][2][3]]

[[1 2 3]]

[[1][2][3]]

有两种方式实现矩阵的转置。

15、zeros() ones() 例子:

print zeros((2,1))

print ones((2,3))#参数指明了矩阵的行列数

结果:

[[ 0.][ 0.]]

[[ 1. 1. 1.][ 1. 1. 1.]]

zeros返回指定行列全零矩阵 ones返回指定行列的全一矩阵

16、列表 数组 linspace 例子:

#列表和数组的区别:#列表: [1, 2, 3, 4]#数组: [1 2 3 4]print '*'*20ll =[1,2,3,4]

print '列表:',ll arr = array(ll)

print '数组:',arr

print '*'*20print linspace(0,3,6) #返回的是数组

输出结果:

******************** 列表: [1, 2, 3, 4] 数组: [1 2 3 4] ********************

[ 0. 0.6 1.2 1.8 2.4 3. ]

数组中间元素没有分隔符。列表逗号分割。 linspace返回的是指定的开始结束位置的指定个数的数。

linspace(0,3,6)返回0到3之间6个数字,且间隔均匀

17、argsort 排序索引 例子:

print '**************数组排序问题****************'#数组的构建问题,初始化使用array()ary=array(zeros(4)) ary[0]=0.1ary[1]= 0.6ary[2]= 0.5ary[3]= 0.7#有-号,降序排列#无-号,升序排列sortindex = argsort(ary)

for id in sortindex:

print '索引:',id

for i in ary:

`print i

结果:

**************数组排序问题**************** 索引: 0 索引: 2 索引: 1 索引: 3 0.1 0.6 0.5 0.7

argsort函数返回数组按照从小到大排序的位置的索引。

sortindex = argsort(-ary) for id in sortindex: print ‘索引:’,id for i in sortindex: print ary[i]

输出结果: 索引: 1 索引: 2 索引: 0 0.7 0.6 0.5 0.1

18、 [:,:]矩阵元素切片

#矩阵元素的获取 ll = [[1,2,3],[4,5,6],[7,8,9]]#获取第二行第0个元素

print mat(ll)[2,0] #第一个冒号代表获取行的起止行号 #第二个冒号代表获取列的起止行号

print mat(ll)[:,:]

结果:

7

[[1 2 3][4 5 6][7 8 9]]

19、diag 例子:

#构建对角矩阵 #diag()参数为列表即可dd = [1,2,3] dilogg = diag(dd)

print 'diag=',dilogg

结果:

diag= [[1 0 0][0 2 0][0 0 3]]

diag构建对角矩阵

20、linalg.inv和.I 求逆矩阵 例子:

dd = [1,2,3] dilogg = diag(dd)

print 'diag=',dilogg

print 'dd:',linalg.inv(dilogg)

print 'I=',mat(dilogg).I ll = [[1,2,3],[4,5,6],[7,8,9]] #求逆矩阵 lv = linalg.inv(mat(ll))

print 'inv:',lv

print 'I:',mat(ll).I

结果:

diag= [[1 0 0][0 2 0][0 0 3]]

dd: [[ 1. 0. 0. ] [ 0. 0.5 0. ] [ 0. 0. 0.33333333]]

I= [[ 1. 0. 0. ] [ 0. 0.5 0. ] [ 0. 0. 0.33333333]]

inv: [[ -4.50359963e+15 9.00719925e+15 -4.50359963e+15] [ 9.00719925e+15 -1.80143985e+16 9.00719925e+15] [ -4.50359963e+15 9.00719925e+15 -4.50359963e+15]]

I: [[ -4.50359963e+15 9.00719925e+15 -4.50359963e+15] [ 9.00719925e+15 -1.80143985e+16 9.00719925e+15] [ -4.50359963e+15 9.00719925e+15 -4.50359963e+15]]

上面求逆矩阵有两种方式。 linalg.inv()和 矩阵.I 两种方式均可。

原文发布于微信公众号 - 机器学习算法与Python学习(guodongwei1991)

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

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏武培轩的专栏

Leetcode#53.Maximum Subarray(最大子序和)

题目描述 给定一个序列(至少含有 1 个数),从该序列中寻找一个连续的子序列,使得子序列的和最大。 例如,给定序列 [-2,1,-3,4,-1,2,1,-5,4...

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

24:单词的长度

24:单词的长度 总时间限制: 1000ms 内存限制: 65536kB描述 输入一行单词序列,相邻单词之间由1个或多个空格间隔,请对应地计算各个单词的长度。...

3155
来自专栏ml

C++知识整理(进制)

++输出二进制、十进制、八进制和十六进制总结 分类: C++ 2013-01-14 02:26 592人阅读 评论(0) 收藏 举报 在C++中,默认状态下,数...

3559
来自专栏coder修行路

用python实现计算1-2*((60-30+(-40/5)*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2))类似的公式计算

作业需求: 开发一个简单的python计算器 1、实现加减乘除及拓号优先级解析 2、用户输入 1 - 2 * ( (60-30 +(-40/5) * (9-2*...

4629
来自专栏武培轩的专栏

Leetcode#561. Array Partition I(数组拆分 I)

给定长度为 2n 的数组, 你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), ..., (an, bn) ,使得从1 到 n 的 ...

1722
来自专栏Python

python的reduce()函数

reduce()函数是Python内置的一个高阶函数。 reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,...

1999
来自专栏吾爱乐享

java之学习Random类的概述和注意事项

1023
来自专栏老秦求学

题目1054:字符串内排序

题目描述: 输入一个字符串,长度小于等于200,然后将输出按字符顺序升序排序后的字符串。 输入: 测试数据有多组,输入字符串。 输出: 对于每组输入,输出处理后...

3407
来自专栏desperate633

二维数组中的查找代码

852
来自专栏chenjx85的技术专栏

leetcode-821-Shortest Distance to a Character

2976

扫码关注云+社区

领取腾讯云代金券