x = [2*i for i in range(9)]
print x
[0, 2, 4, 6, 8, 10, 12, 14, 16]
/*****************************************************************************************************/
print range(9)
[0, 1, 2, 3, 4, 5, 6, 7, 8]
/***********************************/
print range(1, 5)
[1, 2, 3, 4]
/*******************************************************/
os.walk() 方法用于通过在目录树种游走输出在目录中的文件名,向上或者向下。
语法 http://www.runoob.com/python/os-walk.html
walk()方法语法格式如下:
os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])参数
-
top -- 根目录下的每一个文件夹(包含它自己), 产生3-元组 (dirpath, dirnames, filenames)【文件夹路径, 文件夹名字, 文件名】。
-
topdown --可选,为True或者没有指定, 一个目录的的3-元组将比它的任何子文件夹的3-元组先产生 (目录自上而下)。如果topdown为 False, 一个目录的3-元组将比它的任何子文件夹的3-元组后产生 (目录自下而上)。
-
onerror -- 可选,是一个函数; 它调用时有一个参数, 一个OSError实例。报告这错误后,继续walk,或者抛出exception终止walk。
-
followlinks -- 设置为 true,则通过软链接访问目录。
返回值
该方法没有返回值。
/*****************************************************************************************************************/
arange函数用于创建等差数组,使用频率非常高,arange非常类似range函数,会python的人肯定经常用range函数,比如在for循环中,几乎都用到了range,下面我们通过range来学习一下arange,两者的区别仅仅是arange返回的是一个数据,而range返回的是list。
>>> range(10)
[0,1,2,3,4,5,6,7,8,9]
>>> range(1,11)
[1,2,3,4,5,6,7,8,9,10]
>>> range(0,30,5)
[0,5,10,15,20,25]
>>> range(0,10,3)
[0,3,6,9]
>>> range(0,-10,-1)
[0,-1,-2,-3,-4,-5,-6,-7,-8,-9]
>>> range(0)
[]
/*************************************
>>> xrange(5)
xrange(5)
>>> list(xrange(5))
[0,1,2,3,4]
>>> xrange(1,5)
xrange(1,5)
>>> list(xrange(1,5))
[1,2,3,4]
>>> xrange(0,6,2)
xrange(0,6,2)
>>> list(xrange(0,6,2))
[0,2,4]
/*********************************************
a=range(0,10)
print type(a)print a
print a[0],a[1]
输出结果为:
<type 'list'>
[0,1,2,3,4,5,6,7,8,9]
0,1
/*********************************************
结果是
[(1,
![搜索](https://i-blog.csdnimg.cn/blog_migrate/a70bb6fd41d0de0d8cf45a69f0247ec3.png)
就是依次取出每一个数组的元素,然后组合
操作数可以更多
zip([1,2,3],['a','b','c'],[4,5,6])也是可以的
如果元素长度不一致会被砍到一样长
另外zip(*list)也就是数组前面带个星号,是上述操作的逆操作
zip(*[(1, 'a'), (2, 'b'), (3, 'c')])的结果是[1,2,3],['a','b','c']
a=zip([121, 122], [[1, 1, 1], [2, 2, 2]])
结果为[(121, [1, 1, 1]), (122, [2, 2, 2])]
b=zip([121, 122], [[1, 1, 1], [2, 2, 2], [3, 3, 3]])
结果为[(121, [1, 1, 1]), (122, [2, 2, 2])]
c=zip([121, 122], [[1, 1, 1], [2, 2, 2]], [3, 3, 3])
结果为[(121, [1, 1, 1], 3), (122, [2, 2, 2], 3)]
/*****************************************************************************************
import numpy as np
import matplotlib.pyplot as plt
plt.figure(1) # 创建图表1
plt.figure(2) # 创建图表2
ax1 = plt.subplot(211) # 在图表2中创建子图1
ax2 = plt.subplot(212) # 在图表2中创建子图2
x = np.linspace(0, 3, 100)
for i in xrange(5):
plt.figure(1) #❶ # 选择图表1
plt.plot(x, np.exp(i*x/3))
plt.sca(ax1) #❷ # 选择图表2的子图1
plt.plot(x, np.sin(i*x))
plt.sca(ax2) # 选择图表2的子图2
plt.plot(x, np.cos(i*x))
plt.show()
#载入pylab
from pylab import *
#用numpy生成X轴数据
X = np.linspace(-np.pi, np.pi, 256,endpoint=True)
#用numpy根据numpy生成sin,cos数据
C,S = np.cos(X), np.sin(X)
#根据数据绘制
plot(X,C)
plot(X,S)
#显示图片,如果在命令行模式,会弹出图片预览窗口,
#IPython下,直接在命令行展示图片
show()
- import matplotlib.pyplot as plt
- import numpy as np
- from mpl_toolkits.mplot3d import Axes3D
- #设置三维坐标
- fig = plt.figure()
- ax = Axes3D(fig)
- #生成数据
- x = np.linspace(-5,5,200)
- y = np.linspace(-5,5,200)
- X, Y = np.meshgrid(x, y)#XY平面的网格数据
- Z = (1-X/2+X**7+Y**5)*np.exp(-X**2-Y**2)
- #画3d图
- ax.plot_surface(X,Y,Z,rstride=1,cstride=1,cmap=plt.cm.jet)
- #ax.plot_surface(X,Y,z,rstride=1,cstride=1,cmap=plt.get_cmap('rainbow'))
- #等高线图
- ax.contourf(X,Y,Z,zdir='z',offset=-2,cmap='rainbow') #zdir= x/y/x 轴的等高线 offset=等高线的位置
- plt.show()
import matplotlib.pyplot as plt import numpy as np from mpl_toolkits.mplot3d import Axes3D #设置三维坐标 fig = plt.figure() ax = Axes3D(fig) #生成数据 x = np.linspace(-5,5,200) y = np.linspace(-5,5,200) X, Y = np.meshgrid(x, y)#XY平面的网格数据 Z = (1-X/2+X**7+Y**5)*np.exp(-X**2-Y**2) #画3d图 ax.plot_surface(X,Y,Z,rstride=1,cstride=1,cmap=plt.cm.jet) #ax.plot_surface(X,Y,z,rstride=1,cstride=1,cmap=plt.get_cmap('rainbow')) #等高线图 ax.contourf(X,Y,Z,zdir='z',offset=-2,cmap='rainbow') #zdir= x/y/x 轴的等高线 offset=等高线的位置 plt.show()
/***********************************************************************************************************
import scipy.ioas sio
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
mat1 = '4a.mat' #这是存放数据点的文件,需要它才可以画出来。上面有下载地址
data = sio.loadmat(mat1)
m = data['data']
x,y,z = m[0],m[1],m[2]
ax=plt.subplot(111,projection='3d') #创建一个三维的绘图工程
#将数据点分成三部分画,在颜色上有区分度
ax.scatter(x[:1000],y[:1000],z[:1000],c='y')#绘制数据点 //y为黄色
ax.scatter(x[1000:4000],y[1000:4000],z[1000:4000],c='r') //r为红色
ax.scatter(x[4000:],y[4000:],z[4000:],c='g') //g为绿色
ax.set_zlabel('Z') #坐标轴
ax.set_ylabel('Y')
ax.set_xlabel('X')
plt.show()
1.xs和ys:x轴和y轴坐标。
2.zs:这是z轴的坐标值,可以是所有点对应一个值,或者是每个点对应一个值。
3.zdir:决定哪个坐标轴作为z轴的维度(通常是zs,但是也可以是xs或者ys)。
/*********************************************************************************************
http://www.cnblogs.com/qianlifeng/archive/2012/02/13/2350086.html bar函数的使用
http://www.cnblogs.com/hellcat/p/7070548.html
/*************************************************************************************************
warpAffine函数 http://blog.csdn.net/qq_18343569/article/details/47954079
函数作用:
对图像进行仿射变换,变换的图像边界是平行的
函数调用形式:
C++: void warpAffine(InputArray src, OutputArray dst, InputArray M, Size dsize, int flags=INTER_LINEAR, intborderMode=BORDER_CONSTANT, const Scalar& borderValue=Scalar())
参数详解:
InputArray src:输入的图像
OutputArray dst:输出的图像
InputArray M:透视变换的矩阵
Size dsize:输出图像的大小
int flags=INTER_LINEAR:输出图像的插值方法,
combination of interpolation methods (INTER_LINEAR or INTER_NEAREST) and the optional flagWARP_INVERSE_MAP, that sets M as the inverse transformation ( )
int borderMode=BORDER_CONSTANT:图像边界的处理方式
const Scalar& borderValue=Scalar():边界的颜色设置,一般默认是0
/************************************************************************************
使用opencv画一些几何形状:cv2.line(),cv2.circle(),cv2.rectangle(),cv2.ellipse(),
http://blog.sina.com.cn/s/blog_15432cb7e0102x3la.html
http://blog.csdn.net/hustcanpi/article/details/50630017
/******************************************************************************************
opencv视频操作基础---VideoCapture类
http://blog.csdn.net/weicao1990/article/details/53379881
/**********************************************************************************************
在python中sys.argv[1:]是什么? python test1.py /home/lihongwei/video 30
argv[0] argv[1] argv[2]
我的问题是:为何[]里会有”:“冒号?sys.argv[1:]又代表什么?
这就是个分片操作
简单例子
l = [1,2,3,4,5]
l[1:],意思就是取列表l第一个元素后的值,也就是[2,3,4,5]
l[2:], -----------------[3,4,5]
还可以倒序来取
l[:-1],-----------------从右到左,取最后一个元素前面的值,[1,2,3,4]
l[:-2],-----------------[1,2,3]
而你问的sys.argv[1:],这个是你main(xxx)方法的参数,那么这个参数从哪里来
从这里来,比如
python test.py --t help --v
那么sys.argv就是['test.py', '--t', 'help', '--v']
那么sys.argv[1:]就是['--t', 'help', '--v']
/***************************************************************************************************
段错误 (核心已转储)
确信其他代码没有问题,则检查数组是否存在越界问题,象你贴出来的这种代码,多半是越界问题造成的。
/**************************************************************************************************************************/
Python使用os.listdir()函数来得目录内容的介绍
在Python中可以使用os.listdir()函数获得指定目录中的内容
http://blog.csdn.net/wickedvalley/article/details/53115289
/***********************************************************************************************/
Python中有join()和os.path.join()两个函数,具体作用如下:
join(): 连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串
os.path.join(): 将多个路径组合后返回
http://www.jb51.net/article/63598.htm
#对序列进行操作(分别使用' '与':'作为分隔符)
>>> seq1
=
[
'hello'
,
'good'
,
'boy'
,
'doiido'
]
>>>
print
' '
.join(seq1)
hello good boy doiido
>>>
print
':'
.join(seq1)
hello:good:boy:doiido
#对字符串进行操作
>>> seq2
=
"hello good boy doiido"
>>>
print
':'
.join(seq2)
h:e:l:l:o: :g:o:o:d: :b:o:y: :d:o:i:i:d:o
#对元组进行操作
>>> seq3
=
(
'hello'
,
'good'
,
'boy'
,
'doiido'
)
>>>
print
':'
.join(seq3)
hello:good:boy:doiido
#对字典进行操作
>>> seq4
=
{
'hello'
:
1
,
'good'
:
2
,
'boy'
:
3
,
'doiido'
:
4
}
>>>
print
':'
.join(seq4)
boy:good:doiido:hello
#合并目录
>>>
import
os
>>> os.path.join(
'/hello/'
,
'good/boy/'
,
'doiido'
)
'/hello/good/boy/doiido'
/**********************************************************************************
opencv2 cv2.cv.CV_CAP_PROP_FRAME_COUNT cv2.cv.CV_CAP_PROP_FRAME_WIDTH cv2.cv.CV_CAP_PROP_FRAME_HEIGH
opencv3 cv2.CAP_PROP_FRAME_COUNT cv2.CAP_PROP_FRAME_WIDTH cv2.CAP_PROP_FRAME_HEIGHT
cv2.VideoWriter_fourcc()是opencv3.0所用,而cv2.cv.CV_FOURCC()用于opencv2.4.*
2.4 version:
out = cv2.VideoWriter('output.avi',cv2.cv.CV_FOURCC('M','J','P','G'), 20.0, (640,480))
3.0 version:
out = cv2.VideoWriter('output.avi',cv2.VideoWriter_fourcc(*'XVID'), 20.0, (640,480))
/*********************************************************
python100例 http://www.iplaypy.com/python-100/
/******************************************************************************
Python OS模块介绍 http://www.iplaypy.com/module/os.html
1 )、os.sep 更改操作系统中的路径分隔符。
2 )、os.getcwd()获取当前路径,这个在Python代码中比较常用。
3 )、os.listdir() 列出当前目录下的所有文件和文件夹。
4 )、os.remove() 方法可以删除指定的文件。
5 )、os.system() 方法用来运行shell命令。
6 )、os.chdir() 改变当前目录,到指定目录中。
/**********************************************************************
python中的三目运算符
为真时的结果 if 判断条件 else 为假时的结果(注意,没有冒号)
>>> 1 if 5>3 else 0
1
>>> 1 if 5<3 else 0
0
>>>
/****************************************************************************************************************/
linux cut -d '/' -f 1这条命令是什么意思?
|
-f表示取第一个字段的值。
如:echo "a/b/c" |cut -d '/' -f 1,执行结果是a。执行过程:先按/分段,分段后结果是:第一个字段是a,第2个字段是b,第3个字段是c,-f就是取第几个字段。
|
/***************************************************************************************************************************
Python2.6中引入了format进行字符串格式化,相比在字符串中用%的类似C的方式,更加强大方便:
a = 'I’m like a {} chasing {}.'
# 按顺序格式化字符串,'I’m like a dog chasing cars.'
a.format('dog','cars')
# 在大括号中指定参数所在位置
b = 'I prefer {1} {0} to {2} {0}'
b.format('food','Chinese','American')
# >代表右对齐,>前是要填充的字符,依次输出:
# 000001
# 000019
# 000256
for i in [1, 19,256]:
print('The index is {:0>6d}'.format(i))
# <代表左对齐,依次输出:
# *---------
# ****------
# *******---
for x in ['*', '****','*******']:
progress_bar = '{:-<10}'.format(x)
print(progress_bar)
for x in [0.0001, 1e17,3e-18]:
print('{:.6f}'.format(x)) # 按照小数点后6位的浮点数格式
print('{:.1e}'.format(x)) # 按照小数点后1位的科学记数法格式
print ('{:g}'.format(x)) # 系统自动选择最合适的格式
template = '{name} is {age} years old.'
c = template.format(name='Tom',age=8))# Tom is 8 years old.
d = template.format(age=7,name='Jerry')# Jerry is 7 years old.
/*****************************************************************************************************************
Restarting data prefetching from start ?
https://github.com/BVLC/caffe/issues/1579