python與numpy使用的一些小tips(1)
1,python的len()函數
返回列表元素個數【Python List len()方法】
需要說明的是:當一個如shape=(1,2,3)的numpy數組,它會放回1。因為python認為:這個數組有一個元素,而每一個元素的形狀是(2,3).總的來說,len()函數返回的是其第一個維度的個數。底下是列子:
A = np.ones((1,2,3))nprint(A.shape)nprint(len(A))nB = np.ones((6,2,3))nprint(B.shape)nprint(len(B))n輸出:n(1, 2, 3)n1n(6, 2, 3)n6n
2,matplotlib的plot使用
第一個需要注意的是plot(x,y)
- x和y必須有相同的第一個維度
- x和y的維度必須不超過2
畫一個一維的,一條線:nA = np.ones(1000)nplt.plot(range(len(A)),A)nplt.show()n
註:A = np.ones((1000,1))畫出來的是一樣的,最後要show一下才會出現圖表
畫一個一維的,一條線:nA = np.random.uniform(0,1,(1000,1))nB = np.random.uniform(0,2,(1000,1))nC = np.concatenate([A,B],axis=1)nplt.plot(range(len(C)),C)nplt.show()nprint(C.shape)n輸出:n(1000, 2)n
註:
- 畫N條線y的第二個為N個維度。
- numpy.random.uniform(low=0.0, high=1.0, size=None)【numpy.random.uniform - NumPy v1.10 Manual】產生一個[low,high)的均勻分布的隨機數,形狀為size
對range討論:
print(range(8))nprint(range(8)[0])nprint(range(8)[1])nprint(type(range(8)))nprint(len(range(8)))n輸出:nrange(0, 8)n0n1n<class range>n8n
range輸出的就是一個range類,其餘的讀者自行體會
保存圖表
plt.savefig(os.path.join(testspeechdir, BF_{}_{}.png.format(epoch,index)))nplt.close()n
- plt.savefig:圖表路徑包含名稱
- plt.close():是將圖表關閉,要不然它是接著上一次的畫【matplotlib 繪圖可視化知識點整理 - Python - 伯樂在線】
- plt.axis([xmin, xmax, ymin, ymax])上面例子里的axis()命令給定了坐標範圍。
3,numpy取整函數
一,round四捨五入
a = np.float(3.3)nprint(np.round(a))nb = np.float(3.6)nprint(np.round(b))n輸出:n3n4n
二,floor向下取整
a = np.float(3.3)nprint(np.floor(a))nb = np.float(3.6)nprint(np.floor(b))n輸出:n3.0n3.0n
三,ceil向上取整
a = np.float(3.3)nprint(np.ceil(a))nb = np.float(3.6)nprint(np.ceil(b))n輸出:n4.0n4.0n
4,一個小任務,把範圍從0到255每一個值都可以取到的一組數,規整到0到255但只可以去其中的10個數
testA = SpeechGenerator(testimgdirA,speechlen)nA_speech_batch = next(testA)nAO_speech_batch = np.round(A_speech_batch/25.)*25nC_speech_batch = np.concatenate([AO_speech_batch,A_speech_batch],axis=-1)nplt.plot(range(len(C_speech_batch[0])),C_speech_batch[0])nplt.show()n
註:A_speech_batch/25.因為A_speech_batch為float數據類型,它只可以和同類型的數相除。所以25後面要加一個小點
歡迎關注公眾號:huangxiaobai880
https://www.zhihu.com/video/924616677998620672
推薦閱讀:
※小說人物關係的可視化
※限時加入!國內第二個千人Python自動化運維實名社群成立
※Python 結巴分詞(jieba)源碼分析