在Python的數據科學世界裏,Numpy是處理數值計算的核心工具,尤其是數組操作。如果你剛開始接觸Numpy,學會幾個基礎又常用的函數會讓你事半功倍。今天我們就來重點學習兩個最基礎的Numpy函數:arange和zeros,它們能幫你快速創建數值數組,是後續學習更復雜Numpy操作的基石。
Numpy是什麼?¶
簡單來說,Numpy提供了高效的多維數組對象和數學函數,能讓你像操作列表一樣處理大量數據,但速度更快、功能更強。對於數據分析、機器學習等任務,數組操作是基礎,而arange和zeros是入門必學的工具。
一、arange:快速生成有序數組¶
作用¶
arange函數可以生成一個有規律的有序數組,類似於Python內置的range函數,但返回的是Numpy數組(更適合數值計算)。
語法¶
numpy.arange([start, ]stop, [step, ]dtype=None)
- start:數組的起始值,默認爲
0(包含在數組中)。 - stop:數組的結束值(不包含在數組中),是必須參數。
- step:相鄰兩個元素的間隔(步長),默認爲
1。 - dtype:數組的數據類型(如
int、float等),默認根據輸入自動推斷。
常用示例¶
- 默認參數(start=0,step=1)
如果只給stop參數,會從0開始,步長1,到stop-1結束:
import numpy as np
arr = np.arange(5) # start=0, step=1, stop=5
print(arr) # 輸出:[0 1 2 3 4]
- 指定start和step
如果你想自定義起始值和步長:
arr = np.arange(2, 10, 2) # start=2, step=2, stop=10
print(arr) # 輸出:[2 4 6 8]
注意:stop是結束條件(不包含),所以10不會被包含,最後一個元素是8。
- 指定數據類型
如果需要整數數組,可以用dtype=int:
arr = np.arange(0, 6, 1, dtype=int) # 顯式指定整數類型
print(arr) # 輸出:[0 1 2 3 4 5]
注意事項¶
- stop不包含:
np.arange(0, 5)生成0-4,而不是0-5。 - 步長爲小數時的精度問題:如果
step是小數(如0.1),可能因浮點數精度導致結果偏差,建議儘量用整數步長。
二、zeros:快速生成全0數組¶
作用¶
zeros函數可以生成一個所有元素都是0的數組,常用於初始化矩陣、填充佔位符等場景。
語法¶
numpy.zeros(shape, dtype=float, order='C')
- shape:數組的形狀(必填),可以是整數(表示一維數組長度)或元組(表示多維數組形狀)。
- dtype:數組的數據類型,默認爲
float(浮點數),也可指定int(整數)。 - order:內存中數組的存儲順序(行優先
C或列優先F),對初學者無需關注,默認C。
常用示例¶
- 一維數組(shape爲整數)
生成長度爲n的全0數組:
arr = np.zeros(5) # shape=5,表示一維數組,長度5
print(arr) # 輸出:[0. 0. 0. 0. 0.] # 默認是float類型
- 二維數組(shape爲元組)
生成m行n列的二維全0數組:
arr = np.zeros((2, 3)) # shape=(2,3),2行3列
print(arr)
# 輸出:
# [[0. 0. 0.]
# [0. 0. 0.]]
- 指定整數類型的0數組
如果需要整數類型的0數組(而非默認的浮點數),用dtype=int:
arr = np.zeros(3, dtype=int) # 一維,3個元素,整數0
print(arr) # 輸出:[0 0 0]
注意事項¶
- shape參數必須明確:一維數組可直接傳整數(如
5),多維數組必須傳元組(如(2,3))。 - 默認浮點數:
zeros默認生成float64類型數組,如果需要整數0,一定要指定dtype=int。
總結¶
arange幫你快速生成有序的數值數組(類似列表但更高效),zeros幫你快速初始化全0數組(常用於矩陣或佔位)。這兩個函數是Numpy入門的“剛需”,掌握它們能讓你在後續處理數據時事半功倍。
後續可以繼續學習ones(全1數組)、linspace(均勻分佈數組)等進階函數,逐步構建你的Numpy技能體系。
小練習:嘗試用arange生成[3, 6, 9, 12],用zeros生成一個4行5列的整數0數組,看看結果是否正確~