新手學NumPy
阿新 • • 發佈:2019-01-13
新手學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 函式用來顯示最終的結果