python - 在numpy数组中传播最大值
问题描述
我认为这是一个相对简单的问题,因为我知道 numpy 中有一个简单的答案,但我再也找不到了。
我有一个 numpy 数组,比如说[1, 2, 10, 5, 6, 12, 9, 9, 8]
我想从头到尾遍历它并只保留迄今为止看到的最大值,例如答案是[1, 2, 10, 10, 10, 12, 12, 12, 12]
用一个循环很容易解决,但前段时间我了解了一个 numpy 函数,它可以快速完成工作,而且也很紧凑。我正在寻找这种方法。
谢谢 !
解决方案
您可以使用numpy.ufunc.accumulate
, 来累积应用函数的结果,maximum
在这种情况下,在所有元素上:
a = np.array([1, 2, 10, 5, 6, 12, 9, 9, 8])
np.maximum.accumulate(a)
# array([ 1, 2, 10, 10, 10, 12, 12, 12, 12], dtype=int32)
推荐阅读
- react-native - 为什么要一一响应原生 flatlist 渲染
- snowflake-cloud-data-platform - 创建模式的最佳实践是什么?
- google-app-engine - 使用 Google Cloud Shell Editor 作为本地开发环境时如何启用 CURL?
- html - 将项目对齐以居中,但在属性之间保持空格
- c - C 读取字符串字符时出错。尝试从字符串打印但没有成功
- angular - 如何获取带有分页(NG-ZORRO、Angular)的表的索引?
- django - 如何在 Django ORM 中嵌套两个多对多字段
- reactjs - history.go 的问题
- python - 使用 Django Rest Framework Python + Oracle 的连续查询通知 (CQN)
- django - 带注释的查询集,与模型实例上的属性相同的名称不起作用