新手学NumPy

新手学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 函数用来显示最终的结果
这里写图片描述

猜你喜欢

转载自blog.csdn.net/u012998237/article/details/48603573