让
a = np.array([1, 1, 1,1,1,1])
b = np.array([2,2,2])
是两个numpy数组。然后让
c = [a]+[b]+[b]
很显然,c
具有重复的元素b
。现在,我希望从b
中删除一个数组c
,以便c
仅包含一个a
和一个b
我通常使用set()
来删除列表中的重复元素。但是,如果这次是
set(c)
我会收到类似
的错误TypeError: unhashable type: 'numpy.ndarray'
据我了解,numpy.ndarray
不可散列。
上面的列表c
只是一个例子,实际上我的c
可能很长。那么,有什么好方法可以从numpy.array列表中删除重复的元素?
谢谢!
编辑:我希望我的回报是c = [a]+[b]
答案 0 :(得分:1)
我认为问题与下面的问题相同。
Removing duplicates from a list of numPy arrays
import numpy as np
import cv2
cap = cv2.VideoCapture(r"C:\.....Blocks.mp4")
counter = 0
while(True):
# Capture frame-by-frame
ret, frame = cap.read()
cv2.imshow(frame)
print("Frame number: " + str(counter))
counter = counter+1
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()
结果c:
import numpy as np
a = np.array([1, 1, 1,1,1,1])
b = np.array([2,2,2])
arraylist = [a, b, b]
L = {array.tostring(): array for array in arraylist}
c = [v for v in L.values()]
c
答案 1 :(得分:1)
您可以使用此
c = a.tolist() + b.tolist() + b.tolist()
然后
c = set(c)