我試圖獲得相當於np.unique,但帶有'axis = 1'選項。使用numpy獲得每行唯一計數〜和〜唯一值
a = np.array([[8, 8, 8, 5, 8],
[8, 2, 0, 8, 8],
[4, 5, 4, 2, 4],
[4, 6, 5, 2, 6]])
我正在尋找每行最高計數值並將其保存爲一維矢量。基本上「每行最常見的是哪個值」。
正確答案:[8,8,4,6]在這個例子中。
現在我做這樣的事情:
y = np.zeros(len(a))
for i in xrange(len(a)):
[u,cnt] = np.unique(a[i,:],return_counts=True)
# pick the value from 'u' that is seen the most.
y[i] = u[np.argmax(cnt)]
遍歷數千行的時候這給預期的效果,但在Python很慢。我正在尋找完全矢量化的方法。
我發現unique row elements職位,但它並不完全做我想做的(,要麼我不是很聰明到它Munge時間成所需的形式或直接不適用。)
感謝您在提前爲您提供任何幫助。
請注意,唯一不能以您想要的方式進行矢量化:每行可能有不同數量的unqiue元素,因此返回將不得不爲NumPy中的選項。 – Jaime