在Python的數據科學世界裏,Numpy是處理數值計算的核心工具,尤其是數組操作。如果你剛開始接觸Numpy,學會幾個基礎又常用的函數會讓你事半功倍。今天我們就來重點學習兩個最基礎的Numpy函數:arangezeros,它們能幫你快速創建數值數組,是後續學習更復雜Numpy操作的基石。

Numpy是什麼?

簡單來說,Numpy提供了高效的多維數組對象和數學函數,能讓你像操作列表一樣處理大量數據,但速度更快、功能更強。對於數據分析、機器學習等任務,數組操作是基礎,而arangezeros是入門必學的工具。

一、arange:快速生成有序數組

作用

arange函數可以生成一個有規律的有序數組,類似於Python內置的range函數,但返回的是Numpy數組(更適合數值計算)。

語法

numpy.arange([start, ]stop, [step, ]dtype=None)
  • start:數組的起始值,默認爲0(包含在數組中)。
  • stop:數組的結束值(不包含在數組中),是必須參數。
  • step:相鄰兩個元素的間隔(步長),默認爲1
  • dtype:數組的數據類型(如intfloat等),默認根據輸入自動推斷。

常用示例

  1. 默認參數(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]
  1. 指定start和step
    如果你想自定義起始值和步長:
   arr = np.arange(2, 10, 2)  # start=2, step=2, stop=10
   print(arr)  # 輸出:[2 4 6 8]

注意:stop是結束條件(不包含),所以10不會被包含,最後一個元素是8

  1. 指定數據類型
    如果需要整數數組,可以用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

常用示例

  1. 一維數組(shape爲整數)
    生成長度爲n的全0數組:
   arr = np.zeros(5)  # shape=5,表示一維數組,長度5
   print(arr)  # 輸出:[0. 0. 0. 0. 0.]  # 默認是float類型
  1. 二維數組(shape爲元組)
    生成m行n列的二維全0數組:
   arr = np.zeros((2, 3))  # shape=(2,3),2行3列
   print(arr)
   # 輸出:
   # [[0. 0. 0.]
   #  [0. 0. 0.]]
  1. 指定整數類型的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數組,看看結果是否正確~

小夜