請問如下面的陣列
想要挑出第 0 列中的各種值,並且在第 1 列的值最小
陣列 a
import numpy as np
a = np.array([[1,1],[1,2],[1,3],[1,4],[2,2],[2,3],[2,4],[3,1],[3,2],[3,3],[4,3],[4,4]])
[[1 1] # 1 範圍1~4 最小值1
[1 2]
[1 3]
[1 4]
[2 2] # 2 範圍2~4 最小值2
[2 3]
[2 4]
[3 1] # 3 範圍1~3 最小值1
[3 2]
[3 3]
[4 3] # 4 範圍3~4 最小值3
[4 4]]
預期答案是
[1,1]
[2,2]
[3,1]
[4,3]
試著用 for
和 np.min()
找,頂多找到一組
因為範圍可能不定,所以沒有辦法用 a[0:5,1]
之類的找
有無其他建議跟方向,謝謝
我的話會這樣寫
import numpy as np
a = np.array([[1, 1], [1, 2], [1, 3], [1, 4], [2, 2], [2, 3],
[2, 4], [3, 1], [3, 2], [3, 3], [4, 3], [4, 4]])
obj = {}
for i in a:
if i[0] not in obj.keys():
obj.update({i[0]: i[1]})
else:
if i[1] < obj.get(i[0]):
obj.update({i[0]: i[1]})
ans = [[key, value] for key, value in obj.items()]
for i in ans:
print(i)