elsiwaveQI 2022-11-24 22:23 采纳率: 55.6%
浏览 1
已结题

二维数组异常值替换均值

问题遇到的现象和发生背景

在写二维数组异常值替换代码中,遇到一个问题,如何将数组中的异常值使用该列的均值进行替换,需要逐列进行。异常值判断已找到了解决办法。目前查阅文献资料,发现都是针对一维数组或list进行的操作,没有对二维数组的这类操作(异常值替换为均值)。

用代码块功能插入代码,请勿粘贴截图

mean = np.mean(data_array, axis=1)
std = np.std(data_array, axis=1)

floor = mean - 3std
upper = mean + 3
std

for i, val in enumerate(data_array): #这个代码是对一维数组的操作,对二维数组如何修改?
data_array[i] = float(np.where(((val<floor)|(val>upper)), mean, val)) #这个代码是对一维数组的操作,对二维数组如何修改?

运行结果及报错内容

ValueError: operands could not be broadcast together with shapes (4,) (3,)

我的解答思路和尝试过的方法

按列求均值和标准差,对异常值(偏离3倍标准差)使用该列均值替换。使用上述代码进行运算,但没有通过。

我想要达到的结果

修改优化代码或给出更好的解决方案,最终达到异常值由该列均值替代。代码要通用的。谢谢!

  • 写回答

1条回答

      报告相同问题?

      相关推荐 更多相似问题

      问题事件

      • 系统已结题 12月3日
      • 已采纳回答 11月25日
      • 创建了问题 11月24日

      悬赏问题

      • ¥15 Java的运用111111111111
      • ¥15 koa2 + ts 声明文件不生效
      • ¥15 Mac系统word显示此文档已被删除或当前无法访问.
      • ¥15 Unity用代码实现Tilemap
      • ¥15 怎么求广播地址以及网络地址?
      • ¥15 想知道unity如何实现物体贴地运动
      • ¥15 从A地到B地有多条路径可以到达,现要从A地到B地运物资问题
      • ¥30 用java设计小游戏扑克牌比大小,52张牌的图片选世界篮球明星图或其它都行
      • ¥15 ATM管理员功能代码及解释
      • ¥15 EasyExcel导出下载文件响应流为空