![](/img/trans.png)
[英]Encountering AxisError: axis 1 is out of bounds for array of dimension 0
[英]median_absolute_deviation of 2D array throws AxisError: axis 1 is out of bounds for array of dimension 1
代碼塊是:
import scipy as sp
import numpy as np
print(temps.shape)
print(temps.ndim)
mad = sp.stats.median_absolute_deviation(temps, axis=1, nan_policy='omit')
med = np.median(temps, axis=1)
mean = np.mean(temps,axis=1)
temps.shape
是 (992,2048) 並且temps.ndim
是 2
但是使用median_absolute_deviation
的第 3 行拋出AxisError
:軸 1 超出了維度 1 數組的范圍。如果我注釋掉該行,則med
和mean
運行良好,沒有軸錯誤。 為什么會發生這種情況,我如何讓它計算沿長度 2048 軸的中值絕對偏差?
我沒有您的確切數組,但我嘗試復制您的代碼以產生您的錯誤:
from scipy.stats import median_absolute_deviation
import numpy as np
# mimicking your data with random numbers
temps = np.random.normal(0.0, 1.0, size=(992,2048))
# setting values of axis 1 to NaN
temps[:,1] = np.nan
print(temps.shape)
print(temps.ndim)
mad = median_absolute_deviation(temps, axis=1, nan_policy='omit')
med = np.median(temps, axis=1)
mean = np.mean(temps,axis=1)
使用median_absolute_deviation()
中的參數nan_policy='omit'
,您實際上是在要求 function 從數組temps
中刪除所有np.nan
值。
正如我在上面所展示的,如果有一整列的這些值,它們會通過調用nan_policy='omit'
被刪除,因此數組temps
被縮減為一個維度為 1 的數組,並且您看到的錯誤就會出現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.