新手学NumPy
今日错误
**未选用utf-编码**SyntaxError: Non-ASCII character ‘\xe8’ in file
解决方法开头加上#encoding:tf-8
关于sys.argv 其实和c++中控制台输入输出带参数差不多,sys模块的简单介绍可参考sys模块
初学python纯手工敲入书上代码,今日是第一次适应代码,希望能从今后慢慢手敲代码中逐步对python熟悉,一年后希望能有一万行的代码量 加油
ps:马克飞象真是个好东西
__author__ = 'guoguo'
#encoding:utf-8
import scipy.misc
import sys
import matplotlib.pyplot
import numpy.testing
#这个脚本用来调整scipy库中lena的大小
if(len(sys.argv)!=3):#Sys.argv[]是用来获取命令行参数的,sys.argv[0]表示代码本身文件路径
print "usage python %s yfactor" %(sys.argv[0])
sys.exit()
#加载lena到一个数组
lena=scipy.misc.lena()
LENA_X=512
LENA_Y=512
#检查lena的形状 为何要这一步??
numpy.testing.assert_equal((LENA_X,LENA_Y),lena.shape)
#获取调整系数
yfactor=float(sys.argv[1])
xfactor=float(sys.argv[2])
#调整lena的大小
resized=lena.repeat(yfactor,axis=0).repeat(xfactor,axis=1)
#检查调整后数组的形状? 为何要检查
numpy.testing.assert_equal((yfactor*LENA_Y,xfactor*LENA_X),resized.shape)
#绘制lena
matplotlib.pyplot.subplot(211)#绘制的时候输入一个三位数的整数 最高位为行数 此高位为列数 最后一位为位置索引
matplotlib.pyplot.imshow(lena)
matplotlib.pyplot.subplot(212)#绘制的时候输入一个三位数的整数 最高位为行数 此高位为列数 最后一位为位置索引
matplotlib.pyplot.imshow(resized)
matplotlib.pyplot.show()#show 函数用来显示最终的结果
重要函数
numpy.testing.assert_equal((LENA_X,LENA_Y),lena.shape) #用来检查图片大小 是不是520*520
matplotlib.pyplot.subplot(211)#绘制的时候输入一个三位数的整数 最高位为行数 此高位为列数 最后一位为位置索引
matplotlib.pyplot.imshow(lena)
matplotlib.pyplot.show()#show 函数用来显示最终的结果