取np.average而忽略NaN?

2023-12-24

我有一个形状为 (64,17) 的矩阵,对应于时间和纬度。我想取加权纬度平均值,我知道 np.average 可以做到这一点,因为与我用来平均经度的 np.nanmean 不同,可以在参数中使用权重。但是,np.average 不会像 np.nanmean 那样忽略 NaN,因此我每行的前 5 个条目都包含在纬度平均值中,并使整个时间序列充满 NaN。

有没有办法可以在不将 NaN 包含在计算中的情况下进行加权平均值?

file = Dataset("sst_aso_1951-2014latlon_seasavgs.nc")
sst = file.variables['sst']
lat = file.variables['lat']

sst_filt = np.asarray(sst)
missing_values_indices = sst_filt < -8000000   #missing values have value -infinity
sst_filt[missing_values_indices] = np.nan      #all missing values set to NaN

weights = np.cos(np.deg2rad(lat))
sst_zonalavg = np.nanmean(sst_filt, axis=2)
print sst_zonalavg[0,:]
sst_ts = np.average(sst_zonalavg, axis=1, weights=weights)
print sst_ts[:]

Output:

[ nan nan nan nan nan
 27.08499908 27.33333397 28.1457119 28.32899857 28.34454346
 28.27285767 28.18571472 28.10199928 28.10812378 28.03411865
 28.06411552 28.16529465]

[ nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
 nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
 nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
 nan nan nan nan]

您可以像这样创建一个掩码数组:

data = np.array([[1,2,3], [4,5,np.NaN], [np.NaN,6,np.NaN], [0,0,0]])
masked_data = np.ma.masked_array(data, np.isnan(data))
# calculate your weighted average here instead
weights = [1, 1, 1]
average = np.ma.average(masked_data, axis=1, weights=weights)
# this gives you the result
result = average.filled(np.nan)
print(result)

这输出:

[ 2.   4.5  6.   0. ]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

取np.average而忽略NaN? 的相关文章

随机推荐

  • 使用 querySelector 获取包含某个类的所有元素

    为了改变我正在使用的类中的一些样式querySelector el querySelector fa fa car style display none 这对于一个元素来说效果很好 但如果有更多元素包含此类 并且我想将所有元素的显示更改为无
  • WooCommerce 无法从产品类别访问购物车

    我有一个自定义的 WooCommerce 产品类型 我需要从其中访问购物车 URL 看起来很简单 class WC Product My Product extends WC Product Simple public function s
  • 使用 PIL 更改 OpenCV Python 中的字体系列

    上面的答案没有解决我的问题 我在用cv2 putText 将文本放在视频上 这按预期工作 但我正在尝试使用不同的字体 在 OpenCV 中不可用 据我了解 OpenCV 仅限于cv2 FONT HERSHEY字体 所以我使用 PIL 和 O
  • 在渲染中传递参数 - Rails 3

    我看到了几个关于此的问题 但无法解决 我试图在渲染部分时传递参数 类似于domainname com memory books new fbookupload yes 现在 我使用这一行 在部分中 我尝试使用以下方式获取 fbookuplo
  • 如何使用 axios 重定向后获取登陆页面 URL

    使用 NodeJS 如果我使用 maxRedirects 5 的 axios 如果我输入将重定向到另一个 URL 的 URL 如何从最终登陆页面获取 URL 在 HTTP 标头中 当存在 HTTP 200 代码时 就没有着陆页的标头字段 示
  • Django:在保存之前修改模型的字段

    我有一个模型 course 与ImageField and FileField所以我想在用户每次创建课程时创建一个文件夹 我想我可以在保存模型之前执行此操作 所以这是我的问题 如何在方法中访问模型的字段 模型 py Class Course
  • 在 Objective C 中复制整数数组最有效的方法是什么?

    在 Objective C 中将 1000 个整数的数组从一个数组复制到另一个数组的最有效方法是什么 这将在 iPhone 上运行一些绘图代码 因此尽可能高效很重要 Thanks 如果关心的是效率 我假设这是一个 C 整数数组 如果是这样
  • 如何使用ConfigurationManager解析app.config?

    我正在使用某种方法来解析我的 app config 文件 然后我被告知使用 ConfigurationManager 更好 更简单 但问题是我不知道如何使用 ConfigurationManager 来做到这一点 我原来的代码是这样的 Xm
  • Angular 2 - 所有组件的全局变量

    我的 angular2 应用程序在许多不同的组件中使用我的后端 Laravel API 我一直在想 将来我需要更改 API URL 这意味着我必须在我对 API 使用 http get post 方法的所有地方 在所有组件中 更改我的 AP
  • SSL - 如何以及何时使用它

    我有一个客户需要 SSL 来保护在线捐赠 但我对于如何 何时使用 SSL 的经验有限 据我所知 在购买证书时 我将该证书分配给整个域 实际上是 IP 地址 有没有办法将加密隔离到网站的单个页面 或者我应该继续保护整个网站 即使只有一个页面需
  • 如何正确使用 scikit-learn 的高斯过程进行 2D 输入、1D 输出回归?

    在发帖之前我做了很多搜索并发现这个问题 https stackoverflow com questions 21320964 how to make a 2d gaussian process using gpml matlab for r
  • OpenCV 后台描述文件无效

    当我尝试使用此命令时 opencv createsamples img image jpg bg bg txt info info info lst pngoutput info num 2600它告诉我 无效的背景描述文件 我现在尝试 n
  • Android Webrtc 将流更改为 STREAM_MUSIC

    我已经创建了从一台设备到另一台设备的 WebRTC 会话 该设备应该能够控制音乐流的音量 但 WebRTC 最初设计用于传输 voice call 因此使用 voice call 通道并使用通话音量控制对于非通话应用程序 我尝试在 WebR
  • 设置seaborn图的x轴间隔

    我有一组子图要绘制 这里 我们如何设置第二行子图中x轴的间隔 即ax4 to ax6 目前 从 1 到 100 的所有值都会打印出来 如图所示 我试过ax4 set xticks range 1 100 5 但在那里 显示的范围是 1 到
  • 将控制台应用程序转换为 Windows 服务

    我正在尝试将生成 pdf 报告的控制台应用程序转换为 Windows 服务 我的代码如下 我的方向正确吗 我安装了此服务并且启动 停止工作正常 但没有生成报告 控制台应用程序本身就可以很好地生成 Output pdf 我的目标是在服务启动时
  • Java 11 应用程序作为轻量级 docker 镜像

    受到提问的启发为什么 Java 11 基础 Docker 镜像如此大 openjdk 11 jre slim https stackoverflow com questions 53375613 我发现这个话题在Java世界里还没有定论 A
  • C# 中的 Oracle、绑定变量和 ID IN (1, 2, 3) 等查询

    我正在寻找以下 Java 技术的 C ODAC 改编 其中代码能够将数字数组 数组大小可以变化 绑定到非 PL SQL 中SELECT语句 然后在 a 中使用结果数组WHERE ID IN 风格检查 http rafudb blogspot
  • 我应该从源代码编译一个库吗?

    我正在开发一个将在定制的 基于 debian 的 Linux 系统上运行的应用程序 我们有一个工具链 以便我们可以为目标系统交叉编译应用程序 这样我们就不必依赖于我们进行编译的主机操作系统 而不是目标操作系统 但是 我不确定我们是否应该从源
  • 具有多种 monad 类型的 Haskell do 子句

    我正在 Haskell 中使用一个名为的图形库三便士 GUI http hackage haskell org package threepenny gui 在这个库中 主函数返回一个UI http hackage haskell org
  • 取np.average而忽略NaN?

    我有一个形状为 64 17 的矩阵 对应于时间和纬度 我想取加权纬度平均值 我知道 np average 可以做到这一点 因为与我用来平均经度的 np nanmean 不同 可以在参数中使用权重 但是 np average 不会像 np n