首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >二维数组的median_absolute_deviation抛出AxisError:轴1超出了维1数组的界限

二维数组的median_absolute_deviation抛出AxisError:轴1超出了维1数组的界限
EN

Stack Overflow用户
提问于 2020-07-09 20:35:27
回答 1查看 130关注 0票数 0

代码块是:

代码语言:javascript
复制
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:axis 1超出了维1数组的范围。如果我注释掉这一行,medmean运行良好,没有轴错误。为什么会发生这种情况,如何让它计算长度2048轴上的中位绝对偏差?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-09 21:34:44

我没有确切的数组,但我尝试复制您的代码以生成错误:

代码语言:javascript
复制
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()中的参数median_absolute_deviation(),您实际上是在请求函数从数组temps中删除所有的np.nan值。

如上面所示,如果这些值有一整列,则通过调用nan_policy='omit'删除它们,因此数组temps被简化为维1的数组,并且会出现错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62823284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档