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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值