If I have a list of numpy arrays, then using remove method returns a value error.
For example:
import numpy as np
l = [np.array([1,1,1]),np.array([2,2,2]),np.array([3,3,3])]
l.remove(np.array([2,2,2]))
Would give me
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
I can’t seem to get the all() to work, is it just not possible?
The problem here is that when two numpy arrays are compared with ==, as in the remove() and index() methods, a numpy array of boolean values (the element by element comparisons) is returned which is interpretted as being ambiguous. A good way to compare two numpy arrays for equality is to use numpy’s array_equal() function.
Since the remove() method of lists doesn’t have a key argument (like sort() does), I think that you need to make your own function to do this. Here’s one that I made:
If you need it to be faster then you could Cython-ize it.