NumPy?zeros()函數(shù)使用小結
NumPy(Numerical Python)是Python科學計算領域的核心庫。它提供了強大的多維數(shù)組對象,以及用于處理這些數(shù)組的工具。在數(shù)據(jù)科學、機器學習和工程計算中經常需要創(chuàng)建特定形狀和數(shù)據(jù)類型的數(shù)組。本文將重點介紹 NumPy 中一個基礎且極其重要的函數(shù):numpy.zeros()。
一、函數(shù)簡介
numpy.zeros() 函數(shù)用于創(chuàng)建一個指定形狀(shape)和數(shù)據(jù)類型(dtype)的新的 NumPy 數(shù)組,并用零填充該數(shù)組的每一個元素。
在需要初始化矩陣或張量、作為累加器的起始值,或在分配內存以供后續(xù)計算時,這個函數(shù)都非常實用。
??它和zeros_like()函數(shù)的比較見NumPy zeros_like() 函數(shù)詳解
官方函數(shù)解析numpy.zeros

二、參數(shù)詳解
numpy.zeros() 的基本函數(shù)簽名如下:
numpy.zeros(shape, dtype=float, order='C', *, like=None)
參數(shù)解析
- shape (必須):
- 定義新數(shù)組的維度。
- 可以是一個整數(shù)(表示一維數(shù)組的大小),也可以是一個整數(shù)元組(例如 (rows, columns) 表示二維數(shù)組,或 (d1, d2, d3) 表示三維數(shù)組)。
- dtype(可選,默認為 float64):
- 定義數(shù)組中元素的數(shù)據(jù)類型,例如 int(整數(shù))、float(浮點數(shù))、complex(復數(shù))等。
- 通常使用 np.int32、np.float64 或簡單地使用 Python 的 int、float。
- order(可選,默認為 'C'):
- 指定數(shù)組在內存中的存儲順序。
- 'C' 表示行主序(C 語言風格),即最后一個軸變化最快。
- 'F' 表示列主序(Fortran 風格),即第一個軸變化最快。
- like(可選):
- (NumPy 1.20.0 版本新增)允許創(chuàng)建一個與給定對象具有相同屬性(如 shape 和 dtype)的數(shù)組,但使用零填充。
三、相關示例
示例 1:創(chuàng)建一維數(shù)組
創(chuàng)建一個包含 5 個元素的零數(shù)組,默認數(shù)據(jù)類型為浮點數(shù):
import numpy as np
# 創(chuàng)建一個包含 5 個浮點數(shù) 0 的一維數(shù)組
arr1 = np.zeros(5)
print(arr1)
print(f"數(shù)據(jù)類型:{arr1.dtype}")
# 輸出: [0. 0. 0. 0. 0.]
# 數(shù)據(jù)類型:float64
示例 2:創(chuàng)建二維數(shù)組
創(chuàng)建一個 3 行 4 列的二維數(shù)組,并指定數(shù)據(jù)類型為整數(shù):
# 創(chuàng)建一個 3x4 的整數(shù)零矩陣
arr2 = np.zeros((3, 4), dtype=int)
print(arr2)
print(f"數(shù)據(jù)類型:{arr2.dtype}")
# 輸出:
# [[0 0 0 0]
# [0 0 0 0]
# [0 0 0 0]]
# 數(shù)據(jù)類型:int64 (或根據(jù)平臺可能是 int32)
示例 3:創(chuàng)建三維數(shù)組
創(chuàng)建一個 2x3x2 的三維數(shù)組(例如,2 個 3x2 的切片):
# 創(chuàng)建一個 2x3x2 的三維數(shù)組
arr3 = np.zeros((2, 3, 2))
print(arr3)
print(f"維度:{arr3.shape}")
# 輸出:
# [[[0. 0.]
# [0. 0.]
# [0. 0.]]
#
# [[0. 0.]
# [0. 0.]
# [0. 0.]]]
# 維度:(2, 3, 2)
示例 4:使用不同的數(shù)據(jù)類型
創(chuàng)建包含 32 位浮點數(shù)(更節(jié)省內存)的數(shù)組:
# 指定 dtype 為 float32
arr4 = np.zeros((2, 2), dtype=np.float32)
print(arr4)
print(f"數(shù)據(jù)類型:{arr4.dtype}")
# 數(shù)據(jù)類型:float32
四、zeros()與empty()的區(qū)別
在 NumPy 中,另一個用于創(chuàng)建新數(shù)組的函數(shù)是 numpy.empty()。了解兩者之間的關鍵區(qū)別至關重要:
| 特性 | numpy.zeros(shape) | numpy.empty(shape) |
|---|---|---|
| 元素值 | 保證所有元素都被初始化為 零。 | 元素值是未初始化的(可能包含內存中已有的隨機值)。 |
| 速度 | 略慢,因為它必須寫入所有的零。 | 極快,因為它跳過了初始化元素的步驟。 |
| 用途 | 需要一個干凈、零值數(shù)組作為起點時。 | 當確定會立即用有意義的值覆蓋數(shù)組的全部內容時,用于性能優(yōu)化。 |
除非是在處理對性能極其敏感的場景,并且非常確定會完全覆蓋數(shù)組,否則通常建議使用 np.zeros(),因為它更安全、更可預測。
到此這篇關于NumPy zeros() 函數(shù)詳解的文章就介紹到這了,更多相關NumPy zeros() 函數(shù)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
pytorch獲取模型某一層參數(shù)名及參數(shù)值方式
今天小編就為大家分享一篇pytorch獲取模型某一層參數(shù)名及參數(shù)值方式,具有很好的價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12
Django imgareaselect手動剪切頭像實現(xiàn)方法
這篇文章主要介紹了Django imgareaselect手動剪切頭像實現(xiàn)方法,實例分析了Django框架操作圖片的相關技巧,需要的朋友可以參考下2015-05-05
pytorch 計算ConvTranspose1d輸出特征大小方式
這篇文章主要介紹了pytorch 計算ConvTranspose1d輸出特征大小方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06
Python實現(xiàn)將中文大寫金額轉數(shù)字金額
在日常的財務處理、票據(jù)識別或金融系統(tǒng)開發(fā)中,我們常常需要將中文大寫的金額轉換為阿拉伯數(shù)字形式,下面我們就來看看如何使用Python實現(xiàn)這一需求吧2025-09-09

