numpy.squeeze()函式
語法:numpy.squeeze(a,axis = none)
1)a表示輸入的陣列;
2)axis用於指定需要刪除的維度,但是指定的維度必須為單維度,否則將會報錯;
3)axis的取值可為none 或 int 或 tuple of ints, 可選。若axis為空,則刪除所有單維度的條目;
4)返回值:陣列
5) 不會修改原陣列;
引用:
引用:場景:在機器學習和深度學習中,通常演算法的結果是可以表示向量的陣列(即包含兩對或以上的方括號形式),如果直接利用這個陣列進行畫圖可能顯示介面為空(見後面的示例)。我們可以利用squeeze()函式將表示向量的陣列轉換為秩為1的陣列,這樣利用matplotlib庫函式畫圖時,就可以正常的顯示結果了。
例子:
import numpy as np
a = np.arange(10)
print("a = np.arange(10):"+str(a))
a = a.reshape(1,10)
print("a = a.reshape(1,10):"+str(a))
a = a.reshape(1,1,10)
print("a = a.reshape(1,1,10):"+str(a))
a = np.squeeze(a)
print("a = np.squeeze(a):"+str(a))
執行結果為:
a = np.arange(10):[0 1 2 3 4 5 6 7 8 9]
a = a.reshape(1,10):[[0 1 2 3 4 5 6 7 8 9]]
a = a.reshape(1,1,10):[[[0 1 2 3 4 5 6 7 8 9]]]
a = np.squeeze(a):[0 1 2 3 4 5 6 7 8 9]
結論:根據上述例子可知,np.squeeze()函式可以刪除陣列形狀中的單維度條目,即把shape中為1的維度去掉,但是對非單維的維度不起作用。
例子:matplotlib畫圖示例
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
#無法正常顯示圖示案例
squares =np.array([[1,4,9,16,25]])
squares.shape #要顯示的陣列為可表示1行5列的向量的陣列
#正常顯示圖示案例
#通過np.squeeze()函式轉換後,要顯示的陣列變成了秩為1的陣列,即(5,)
numpy庫的學習
今天開始進行對numpy庫的學習為了以後使用python進行機器學習開闢道路 為了方便在文件開頭可以 import numpy as np 這個函式實際上是 numpy.array object,dtype none,copy true,order none,subok false,ndmin 0 ...
numpy庫學習筆記
import numpy as np np.array dtype 在小括號中新增所要構建的陣列 每多新增一層中括號 陣列的維數上公升一維 dtype為陣列中資料的型別 np.arange num np.array range num 獲得num範圍內的數並將其構造出一維的ndarray陣列 np....
機器學習 numpy庫的學習
import numpy as np import random 處理數值型的資料 使用numpy生成陣列,型別為ndarray t1 np.array 1 2,3 print t1 print type t1 t2 np.array range 10 print t2 full填充元素 np.fu...