日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > 100道numpy練習

100道numpy練習

來源:程序員人生   發布時間:2015-03-02 08:20:56 閱讀次數:4100次

100道numpy練習

@author:wepon

@blog:http://blog.csdn.net/u012162613/article/details/42784403


今天在deeplearning.net上看theano tutorial,發現1個numpy⑴00-exercise,介紹numpy1些基本用法的,不過不是很具體,我利用閑暇時間照著敲了1些,權且當作翻譯吧,增加函數的原型和詳細介紹。延續更新。


1、初學者10道

1、在python環境中導入numpy包,并命名為np
>>> import numpy as np

2、查看numpy版本和配置信息
>>> print np.__version__ >>> np.__config__.show()

3、創建零向量,zeros函數
>>> z=np.zeros((2,3)) >>> print z [[ 0. 0. 0.] [ 0. 0. 0.]]

4、將上面的零向量的第2行第3列元素置為1。注意python中行列下班是從0開始。
>>>z[1,2]=1 >>> print z [[ 0. 0. 0.] [ 0. 0. 1.]]

5、arange函數,創建1個在給定范圍的向量。
>>> z=np.arange(1,101) %1~100范圍,注意不包括101 >>> print z

6、reshape函數,將array變形為矩陣
>>> Z = np.arange(9).reshape(3,3) >>> print Z [[0 1 2] [3 4 5] [6 7 8]]

7、nonzero函數,尋覓非0元素的下標
>>> nz=np.nonzero([1,2,3,0,0,4,0]) >>> nz (array([0, 1, 2, 5]),)

8、eye函數,生成單位向量
>>> z=np.eye(3) >>> print z [[ 1. 0. 0.] [ 0. 1. 0.] [ 0. 0. 1.]]

9、diag函數,diagonal對角線。
>>> z=np.diag([1,2,3,4],k=0) %k=0,以[1,2,3,4]為對角線 >>> print z [[1 0 0 0] [0 2 0 0] [0 0 3 0] [0 0 0 4]] >>> z=np.diag([1,2,3,4],k=1) %k=1,[1,2,3,4]在對角線上1行 >>> print z [[0 1 0 0 0] [0 0 2 0 0] [0 0 0 3 0] [0 0 0 0 4] [0 0 0 0 0]] >>> z=np.diag([1,2,3,4],k=⑴) %k=⑴,[1,2,3,4]在對角線下1行 >>> print z [[0 0 0 0 0] [1 0 0 0 0] [0 2 0 0 0] [0 0 3 0 0] [0 0 0 4 0]]

10、random模塊的random函數,生成隨機數
>>> Z = np.random.random((3,3)) >>> print Z [[ 0.95171484 0.61394126 0.38864802] [ 0.41943918 0.9398714 0.31608202] [ 0.9993507 0.91717093 0.73002723]]



2、入門級10道

1、創建1個8*8的“棋盤”矩陣。
>>> z=np.zeros((8,8),dtype=int) >>> z[1::2,::2]=1 %1、3、5、7行&&0、2、4、6列的元素置為1 >>> print z [[0 0 0 0 0 0 0 0] [1 0 1 0 1 0 1 0] [0 0 0 0 0 0 0 0] [1 0 1 0 1 0 1 0] [0 0 0 0 0 0 0 0] [1 0 1 0 1 0 1 0] [0 0 0 0 0 0 0 0] [1 0 1 0 1 0 1 0]] >>> z[::2,1::2]=1 >>> print z [[0 1 0 1 0 1 0 1] [1 0 1 0 1 0 1 0] [0 1 0 1 0 1 0 1] [1 0 1 0 1 0 1 0] [0 1 0 1 0 1 0 1] [1 0 1 0 1 0 1 0] [0 1 0 1 0 1 0 1] [1 0 1 0 1 0 1 0]]

2、min()、max()函數
>>> z=np.random.random((10,10)) >>> zmin,zmax=z.min(),z.max() >>> print zmin,zmax 0.014230501632 0.99548760299

3、函數tile(A,reps),reps即重復的次數,不但可以是數字,還可以是array。比如構造棋盤矩陣:
>>> z=np.tile(np.array([[0,1],[0,1]]),(4,4)) >>> print z [[0 1 0 1 0 1 0 1] [0 1 0 1 0 1 0 1] [0 1 0 1 0 1 0 1] [0 1 0 1 0 1 0 1] [0 1 0 1 0 1 0 1] [0 1 0 1 0 1 0 1] [0 1 0 1 0 1 0 1] [0 1 0 1 0 1 0 1]]

4、歸1化,將矩陣規格化到0~1,即最小的變成0,最大的變成1,最小與最大之間的等比縮放。

>>> Z = np.random.random((5,5)) >>> Zmax,Zmin = Z.max(), Z.min() >>> Z = (Z - Zmin)/(Zmax - Zmin) >>> print Z [[ 0. 0.32173291 0.17607851 0.6270374 0.95000808] [ 0.49153473 0.70465605 0.61930085 0.00303294 1. ] [ 0.4680561 0.88742782 0.29899683 0.80704789 0.12300414] [ 0.05094248 0.23065875 0.82776775 0.07873239 0.50644422] [ 0.27417053 0.78679222 0.517819 0.5649124 0.4716856 ]]

5、矩陣點乘
>>> z=np.dot(np.ones((5,3)),np.ones((3,2))) >>> print z [[ 3. 3.] [ 3. 3.] [ 3. 3.] [ 3. 3.] [ 3. 3.]]

6、矩陣相加,5*5矩陣+1*5的向量,相當于每行都加上1*5矩陣

>>> Z = np.zeros((5,5)) >>> Z += np.arange(5) >>> print Z [[ 0. 1. 2. 3. 4.] [ 0. 1. 2. 3. 4.] [ 0. 1. 2. 3. 4.] [ 0. 1. 2. 3. 4.] [ 0. 1. 2. 3. 4.]]


7、linspace函數,在給定區間中生成均勻散布的給定個數。
函數原型 linspace(start, stop, num=50, endpoint=True, retstep=False)

>>> Z = np.linspace(0,10,11,endpoint=True, retstep=False) >>> print Z [ 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.]

生成0~10之間均勻散布的11個數,包括0和1。
若endpoint=False,則10不包括在里面。
若retstep=False,會同時返回均勻區間中每兩個數的間隔。

8、sort函數。調用random模塊中的random函數生成10個隨機數,然后sort排序。

>>> Z = np.random.random(10) >>> Z.sort() >>> print Z [ 0.15978787 0.28050494 0.35865916 0.40047826 0.45141311 0.4828367 0.66133575 0.66775779 0.69278544 0.98095989]

9、allclose函數,判斷兩個array在誤差范圍內是不是相等
函數原型allclose(a, b, rtol=1e-05, atol=1e-08),若absolute(a - b) <= (atol + rtol * absolute(b))則相等。
A = np.random.randint(0,2,5) B = np.random.randint(0,2,5) equal = np.allclose(A,B) print equal

10、mean函數,求平均值

>>> Z = np.random.random(30) >>> m = Z.mean() >>> print m 0.362299527973 >>> A = np.random.randint(0,2,5) >>> B = np.random.randint(0,2,5) >>> equal = np.allclose(A,B) >>> print equal False

注:randint(min,max,num)生成大小為num的array,數值范圍min~max



---------------------------⑵015/1/15-------------------------------

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 欧美精三区欧美精三区 | 不卡中文一二三区 | 91伦理视频在线观看 | 免费的毛片 | 久久电影天堂 | 欧美日韩激情在线一区二区三区 | 国产一区二区在线看 | 国产激情精品一区二区三区 | 国产剧情在线观看一区 | 国产精品自在线 | 国产精品久久久久久模特 | 国产一区二区三区精品久久久 | 国产在线小视频 | 欧美福利在线 | av在线播放一区二区三区 | 不卡电影| 麻辣女教师 | 国产精品区免费视频 | a免费在线观看 | 欧美一区二区三区在线播放 | 欧美国产日韩精品 | 免费黄网站在线观看 | 成人免费高清视频 | 日本久久中文字幕 | 国产精品一区久久久 | 欧美成人极品 | 日本激情视频 | 国产精品一区二区在线 | 久久久精品久久久久 | 国产精品国产a | 久久99这里只有精品 | 极品日韩 | 黄色a视频在线观看 | 久久综合九色 | 成人综合一区 | 精品一区二区在线视频 | 在线观看日韩精品 | 谁有免费黄色网址 | 一区二区在线免费 | 一区二区亚洲 | 欧美日韩精品一区二区三区 |