我想通过从左右移除所有具有特定值(例如255)的元素来修剪一维numpy数组。要做所有额外的工作似乎有点傻
np.trim_zeros(arr-255)+ 255
是否有等效的trim
函数可让您指定触发删除的值?还是可以看看trim_zeros
的内部知识来自己动手?
答案 0 :(得分:0)
@hpaulj指出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代码库中可能会很好。