NumPy numpy.median() 函式

Suraj Joshi 2023年1月30日
  1. numpy.median() 語法
  2. 示例程式碼:numpy.median() 查詢陣列中位數的方法
  3. 示例程式碼:在 numpy.median() 方法中設定 axis 引數沿著特定的軸尋找陣列的中位數
  4. 示例程式碼:在 numpy.median() 方法中設定 out 引數
  5. 示例程式碼:在 numpy.median() 方法中設定 keepdims 引數
NumPy numpy.median() 函式

Python Numpynumpy.median() 計算給定的 NumPy 陣列在指定軸上的中位數。

numpy.median() 語法

numpy.median(a, axis=None, out=None, overwrite_input=False, keepdims=False)

引數

a 陣列或物件,可將其轉換為陣列,計算其中位數。
axis 沿行(axis=0)或列(axis=1)尋找中值。預設情況下,中位數是通過平坦化陣列計算的。
out np.median() 方法結果的佔位符
overwrite_input 布林型。輸入陣列將通過呼叫 median() 方法(overwrite_input=True)來修改。
keepdims 布林型。使輸出的尺寸與輸入相同(keepdims=True)。

返回值

沿著指定軸的中位數的陣列。

示例程式碼:numpy.median() 查詢陣列中位數的方法

import numpy as np

a=np.array([[2,3,4],
            [5,6,7],
           [8,9,10]])

median=np.median(a)

print(median)

輸出:

6.0

它通過扁平化陣列來計算陣列的中位數。

扁平化陣列是指將所有的行一個接一個地展開,將給定陣列轉換為一維陣列。

示例程式碼:在 numpy.median() 方法中設定 axis 引數沿著特定的軸尋找陣列的中位數

示例程式碼: numpy.median() 沿列軸查詢陣列中值的方法

為了沿列軸尋找陣列的平均值,我們設定 axis=0

import numpy as np

a=np.array([[2,3],
            [5,6],
           [8,9]])

median=np.median(a,axis=0)

print(median)

輸出:

[5. 6.]

計算兩列的中位數,最後返回一個包含每列中位數的陣列。

示例程式碼: numpy.median() 沿行軸查詢陣列中位數的方法

要沿行軸尋找陣列的中位數,我們設定 axis=1

import numpy as np

a=np.array([[2,3],
            [5,6],
           [8,9]])

median=np.median(a,axis=1)

print(median)

輸出:

[2.5 5.5 8.5]

它計算所有三行的中位數,最後返回一個包含每行中位數的陣列。

示例程式碼:在 numpy.median() 方法中設定 out 引數


import numpy as np

a=np.array([[2,3],
            [5,6],
           [8,9]])

median=np.zeros(np.median(a,axis=1).shape)
print(f"median before calculation: {median}")

np.median(a,axis=1,out=median)
print(f"median after calculation: {median}")

輸出:

[2.5 5.5 8.5]

它將方法的結果儲存在 median 變數中。

我們必須確保要分配給輸出的變數的維度與輸出的維度大小相同。

示例程式碼:在 numpy.median() 方法中設定 keepdims 引數

import numpy as np

a = np.array([[2, 3], [5, 6], [8, 9]])

print(f"Dimension of Input Array: {median.ndim}")

median = np.median(a, axis=1)
print(f"Dimension of median with 'keepdims=False': {median.ndim}")

median = np.median(a, axis=1, keepdims=True)
print(f"Dimension of median with 'keepdims=True': {median.ndim}")

輸出:

Dimension of Input Array: 2
Dimension of median with 'keepdims=False': 1
Dimension of median with 'keepdims=True': 2

設定 keepdims=True 保留輸出陣列的維數。

在這裡,輸入陣列 a 是 2 維的,如果 keepdims=False(預設值),median 的維數可能會被改變。但設定 keepdims=True 可以保留 np.median() 方法輸出的維數。

作者: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn