numpy - 其他值的 trim_zeros 的 Numpy 等价物
问题描述
我想通过从左右删除所有具有特定值(例如 255)的元素来修剪一维 numpy 数组。做所有额外的工作似乎有点傻
np.trim_zeros(arr - 255) + 255
是否有一个等效的trim
函数允许您指定触发删除的值?或者我可以通过查看内部结构来推出自己的产品trim_zeros
吗?
解决方案
@hpaulj 指出 for 的代码trim_zeros
是用 python 编写的,修改起来非常简单。所以下面的代码可以正常工作,并且应该和内置的一样快trim_zeros
。
def trim(filt, trim_value=0., trim='fb'):
"""
Copied from np.trim_zeros, but allows the trim value to be specified
"""
first = 0
trim = trim.upper()
if 'F' in trim:
for i in filt:
if i != trim_value:
break
else:
first = first + 1
last = len(filt)
if 'B' in trim:
for i in filt[::-1]:
if i != trim_value:
break
else:
last = last - 1
return filt[first:last]
我猜,将它添加到 numpy 代码库中可能会很好。
推荐阅读
- java - @RequestBody 不将请求解析为对象进行验证
- azure-devops - 一次分组和触发多个 Azure 管道
- ios - 在 iOS 11 中应用被用户杀死时的地理围栏
- node.js - 在邮递员数组中发送对象数组始终为空
- python - 我的增强拓扑实现的神经进化无法解决 XOR 问题
- audio - AWS EC2实例上的Pyaudio“无效输入设备(无默认输出设备)”
- ionic3 - 离子范围组件中的自定义事件发射器无法用于生产
- python - 无法在 shopify 中使用 API 创建 webhook
- reactjs - React 的 Material UI 的快速拨号工具提示的字体大小
- javascript - 是否可以从 Chrome 扩展的内容脚本访问在主窗口中创建的 Polymer 元素的属性?