这里的问题是,当将两个numpy数组与==进行比较时,如remove()和index()方法中那样,将返回一个numpy布尔值数组(逐元素比较),该数组被解释为模棱两可。比较两个numpy数组是否相等的一种好方法是使用numpy的array_equal()函数。
由于列表的remove()方法没有键参数(就像sort()一样),因此我认为您需要创建自己的函数才能执行此 *** 作。这是我做的:
def removearray(L,arr): ind = 0 size = len(L) while ind != size and not np.array_equal(L[ind],arr): ind += 1 if ind != size: L.pop(ind) else: raise ValueError('array not found in list.')
如果您需要更快的速度,则可以对其进行Cython化。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)