Numpy庫學習 squeeze 函式

2021-10-03 02:43:05 字數 1831 閱讀 2027

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...