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

二、參數(shù)詳解
numpy.zeros() 的基本函數(shù)簽名如下:
numpy.zeros(shape, dtype=float, order='C', *, like=None)
參數(shù)解析
- shape (必須):
- 定義新數(shù)組的維度。
- 可以是一個(gè)整數(shù)(表示一維數(shù)組的大?。?,也可以是一個(gè)整數(shù)元組(例如 (rows, columns) 表示二維數(shù)組,或 (d1, d2, d3) 表示三維數(shù)組)。
- dtype(可選,默認(rèn)為 float64):
- 定義數(shù)組中元素的數(shù)據(jù)類型,例如 int(整數(shù))、float(浮點(diǎn)數(shù))、complex(復(fù)數(shù))等。
- 通常使用 np.int32、np.float64 或簡(jiǎn)單地使用 Python 的 int、float。
- order(可選,默認(rèn)為 'C'):
- 指定數(shù)組在內(nèi)存中的存儲(chǔ)順序。
- 'C' 表示行主序(C 語(yǔ)言風(fēng)格),即最后一個(gè)軸變化最快。
- 'F' 表示列主序(Fortran 風(fēng)格),即第一個(gè)軸變化最快。
- like(可選):
- (NumPy 1.20.0 版本新增)允許創(chuàng)建一個(gè)與給定對(duì)象具有相同屬性(如 shape 和 dtype)的數(shù)組,但使用零填充。
三、相關(guān)示例
示例 1:創(chuàng)建一維數(shù)組
創(chuàng)建一個(gè)包含 5 個(gè)元素的零數(shù)組,默認(rèn)數(shù)據(jù)類型為浮點(diǎn)數(shù):
import numpy as np
# 創(chuàng)建一個(gè)包含 5 個(gè)浮點(diǎn)數(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)建一個(gè) 3 行 4 列的二維數(shù)組,并指定數(shù)據(jù)類型為整數(shù):
# 創(chuàng)建一個(gè) 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ù)平臺(tái)可能是 int32)
示例 3:創(chuàng)建三維數(shù)組
創(chuàng)建一個(gè) 2x3x2 的三維數(shù)組(例如,2 個(gè) 3x2 的切片):
# 創(chuàng)建一個(gè) 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 位浮點(diǎn)數(shù)(更節(jié)省內(nèi)存)的數(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 中,另一個(gè)用于創(chuàng)建新數(shù)組的函數(shù)是 numpy.empty()。了解兩者之間的關(guān)鍵區(qū)別至關(guān)重要:
| 特性 | numpy.zeros(shape) | numpy.empty(shape) |
|---|---|---|
| 元素值 | 保證所有元素都被初始化為 零。 | 元素值是未初始化的(可能包含內(nèi)存中已有的隨機(jī)值)。 |
| 速度 | 略慢,因?yàn)樗仨殞懭胨械牧恪?/td> | 極快,因?yàn)樗^(guò)了初始化元素的步驟。 |
| 用途 | 需要一個(gè)干凈、零值數(shù)組作為起點(diǎn)時(shí)。 | 當(dāng)確定會(huì)立即用有意義的值覆蓋數(shù)組的全部?jī)?nèi)容時(shí),用于性能優(yōu)化。 |
除非是在處理對(duì)性能極其敏感的場(chǎng)景,并且非常確定會(huì)完全覆蓋數(shù)組,否則通常建議使用 np.zeros(),因?yàn)樗踩?、更可預(yù)測(cè)。
到此這篇關(guān)于NumPy zeros() 函數(shù)詳解的文章就介紹到這了,更多相關(guān)NumPy zeros() 函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python自動(dòng)發(fā)微信監(jiān)控報(bào)警
這篇文章主要為大家詳細(xì)介紹了python自動(dòng)發(fā)微信監(jiān)控報(bào)警,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09
Python實(shí)現(xiàn)人臉識(shí)別的詳細(xì)圖文教程
人臉識(shí)別是人工智能的一個(gè)重要應(yīng)用,下面這篇文章主要給大家介紹了關(guān)于Python實(shí)現(xiàn)人臉識(shí)別的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08
Python中字符串,列表與字典的常用拼接方法總結(jié)
有時(shí)在數(shù)據(jù)處理時(shí),需要對(duì)數(shù)據(jù)進(jìn)行拼接處理,比如字符串的拼接、列表的拼接等,本文主要是介紹了字符串、列表、字典常用的拼接方法,希望對(duì)大家有所幫助2024-02-02
Python代碼執(zhí)行時(shí)間測(cè)量模塊timeit用法解析
這篇文章主要介紹了Python代碼執(zhí)行時(shí)間測(cè)量模塊timeit用法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07
淺析python3字符串格式化format()函數(shù)的簡(jiǎn)單用法
這篇文章主要介紹了python3字符串格式化format()函數(shù)的簡(jiǎn)單用法,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-12-12
Python以簡(jiǎn)單方式定義上下文管理器的實(shí)戰(zhàn)指南
合理使用上下文管理器可以減少40%以上的資源泄漏問(wèn)題,并顯著提高代碼的可讀性,本文將深入探討如何以簡(jiǎn)單方式定義和使用上下文管理器,從基礎(chǔ)概念到高級(jí)技巧,希望對(duì)大家有所幫助2025-11-11

