一、np.ones函數
NumPy是數值計算的一個重要Python庫,np.ones函數是其中的一個重要函數。
在數組運算中,我們常常需要創建一個全1數組,np.ones函數便是為我們提供這種功能的函數。它的函數原型如下:
numpy.ones(shape, dtype=None, order='C') 參數說明: shape: 數組的形狀(如(3,2)),必選參數 dtype: 數組的數據類型,默認為np.float64 order: C(按行)、F(按列)或A(任意,按照內存中的C或Fortran連續),可選參數
其中,參數shape代表數組的維度,可以是一維數組,也可以是多維數組,例如下面的代碼:
import numpy as np a = np.ones(10) b = np.ones((3,4)) c = np.ones((2,3,4)) print(a) print(b) print(c)
使用np.ones(10),可以創建一個一維數組,包含10個元素,每個元素都是1。使用np.ones((3,4))可以創建一個3行4列的二維數組,每個元素都是1。使用np.ones((2,3,4))可以創建一個2頁3行4列的三維數組。
二、np.ones_like函數
除了np.ones函數之外,NumPy還提供了另一個非常有用的函數np.ones_like。
np.ones_like的功能是創建一個形狀與現有數組a相同,元素全為1的數組。例如:
b = np.array([[0, 1, 2], [3, 4, 5]]) c = np.ones_like(b) print(b) print(c)
代碼中,我們先使用np.array創建一個二維數組b,然後使用np.ones_like(b)創建了一個與b形狀相同的全1數組c。
三、np.ones函數語法
np.ones函數不僅可以用來創建全1數組,還可以通過設置數據類型,創建由其他數據類型元素組成的全1數組。
例如,下面代碼創建了一個dtype為int的全1數組:
import numpy as np a = np.ones(5, dtype=int) print(a)
代碼中設置參數dtype=int,創建了一個五個整數元素全為1的數組。同樣地,我們也可以設置其他的dtype參數比如:float、complex、int等。
四、np.ones函數sum()的使用
np.ones函數還有一個非常有用的功能是可以計算數組中所有元素的和。這個功能的實現方法非常簡單,只需要在創建數組時,加上.sum()即可。例如:
import numpy as np a = np.ones((3,2)) print(a.sum())
這段代碼中,我們創建一個3行2列的二維數組a,然後使用a.sum()計算其所有元素之和。
五、np.ones函數應用
np.ones函數的應用非常廣泛,它可以被廣泛用於科學計算、圖像處理、機器學習、深度學習等領域。
下面是一段圖像處理中應用np.ones函數的示例代碼:
import numpy as np import cv2 # 讀取一張圖片 img = cv2.imread('test.jpg') # 將圖片全部像素點全部修改為1 mask = np.ones(img.shape[:2], dtype="uint8") * 255 # 將圖片轉換為灰度圖 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 使用自適應閾值分割,1表示為背景,0表示為前景。 thresh = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 37, 6) # 對二值圖像進行形態學處理 kernel = np.ones((3,3), np.uint8) morph = cv2.erode(thresh, kernel, iterations=2) # 應用掩模 masked = cv2.bitwise_and(morph, morph, mask=mask) # 顯示結果 cv2.imshow("Result", masked) cv2.waitKey(0)
這段代碼是在Python下使用OpenCV實現對一張圖片進行二值化處理,其中np.ones函數被用於創建一個形狀與img相同的mask數組,作為掩模使用。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/309398.html