Tôi đang cố gắng tìm một cách thanh lịch để tìm giá trị tối đa trong một mảng hai chiều. Ví dụ cho mảng này:
[0, 0, 1, 0, 0, 1] [0, 1, 0, 2, 0, 0][0, 0, 2, 0, 0, 1][0, 1, 0, 3, 0, 0][0, 0, 0, 0, 4, 0]
Tôi muốn trích xuất giá trị '4'. Tôi đã nghĩ đến việc làm tối đa trong Max nhưng tôi đang vật lộn trong việc thực hiện nó.
Snakecharmerb
40.4K10 Huy hiệu vàng78 Huy hiệu bạc129 Huy hiệu đồng10 gold badges78 silver badges129 bronze badges
Đã hỏi ngày 20 tháng 11 năm 2016 lúc 8:11Nov 20, 2016 at 8:11
Một cách khác để giải quyết vấn đề này là sử dụng function numpy.amax []
>>> import numpy as np
>>> arr = [0, 0, 1, 0, 0, 1] , [0, 1, 0, 2, 0, 0] , [0, 0, 2, 0, 0, 1] , [0, 1, 0, 3, 0, 0] , [0, 0, 0, 0, 4, 0]
>>> np.amax[arr]
Đã trả lời ngày 24 tháng 7 năm 2018 lúc 11:03Jul 24, 2018 at 11:03
2
Tối đa số tối đa [map[max, numbers]
mang lại 1, 2, 2, 3, 4]:
>>> numbers = [0, 0, 1, 0, 0, 1], [0, 1, 0, 2, 0, 0], [0, 0, 2, 0, 0, 1], [0, 1, 0, 3, 0, 0], [0, 0, 0, 0, 4, 0]
>>> map[max, numbers]
>>> list[map[max, numbers]] # max numbers from each sublist
[1, 2, 2, 3, 4]
>>> max[map[max, numbers]] # max of those max-numbers
4
Đã trả lời ngày 20 tháng 11 năm 2016 lúc 8:13Nov 20, 2016 at 8:13
Falsetrufalsetrufalsetru
345K59 Huy hiệu vàng690 Huy hiệu bạc613 Huy hiệu Đồng59 gold badges690 silver badges613 bronze badges
Không hoàn toàn ngắn như câu trả lời của Falsetru nhưng đây có lẽ là những gì bạn có trong đầu:
>>> numbers = [0, 0, 1, 0, 0, 1], [0, 1, 0, 2, 0, 0], [0, 0, 2, 0, 0, 1], [0, 1, 0, 3, 0, 0], [0, 0, 0, 0, 4, 0]
>>> max[max[x] for x in numbers]
4
Đã trả lời ngày 21 tháng 5 năm 2018 lúc 1:34May 21, 2018 at 1:34
Schmyschmyschmy
Huy hiệu 1211 Bạc5 Huy hiệu Đồng1 silver badge5 bronze badges
Còn cái này thì sao?
import numpy as np
numbers = np.array[[[0, 0, 1, 0, 0, 1], [0, 1, 0, 2, 0, 0], [0, 0, 2, 0, 0, 1], [0, 1, 0, 3, 0, 0], [0, 0, 0, 0, 4, 0]]]
print[numbers.max[]]
4
CEBE
3.3501 Huy hiệu vàng24 Huy hiệu bạc37 Huy hiệu đồng1 gold badge24 silver badges37 bronze badges
Đã trả lời ngày 8 tháng 4 năm 2020 lúc 11:57Apr 8, 2020 at 11:57
1
>>> numbers = [0, 0, 1, 0, 0, 1], [0, 1, 0, 2, 0, 0], [0, 0, 2, 0, 0, 1], [0, 1, 0, 3, 0, 0], [0, 0, 0, 0, 4, 0]
Bạn có thể thêm tham số
>>> import numpy as np
>>> arr = [0, 0, 1, 0, 0, 1] , [0, 1, 0, 2, 0, 0] , [0, 0, 2, 0, 0, 1] , [0, 1, 0, 3, 0, 0] , [0, 0, 0, 0, 4, 0]
>>> np.amax[arr]
0 vào >>> import numpy as np
>>> arr = [0, 0, 1, 0, 0, 1] , [0, 1, 0, 2, 0, 0] , [0, 0, 2, 0, 0, 1] , [0, 1, 0, 3, 0, 0] , [0, 0, 0, 0, 4, 0]
>>> np.amax[arr]
1 như bên dưới để tìm giá trị tối đa trong mảng/danh sách 2-D>>> max[max[numbers, key=max]]
4
Đã trả lời ngày 7 tháng 6 năm 2021 lúc 2:22Jun 7, 2021 at 2:22
Afghaniafghaniafghani
691 Huy hiệu bạc5 Huy hiệu đồng1 silver badge5 bronze badges
Một giải pháp rất dễ dàng để có được cả chỉ số tối đa và tối đa của bạn có thể là:
numbers = np.array[[[0,0,1,0,0,1],[0,1,0,2,0,0],[0,0,2,0,0,1],[0,1,0,3,0,0],[0,0,0,0,4,0]]]
ind = np.argwhere[numbers == numbers.max[]] # In this case you can also get the index of your max
numbers[ind[0,0],ind[0,1]]
Đã trả lời ngày 1 tháng 4 năm 2021 lúc 14:57Apr 1, 2021 at 14:57
MarkhmarkhMarkh
Phù hiệu đồng 6355 bronze badges
Cách tiếp cận này không trực quan như những người khác nhưng ở đây,
>>> import numpy as np
>>> arr = [0, 0, 1, 0, 0, 1] , [0, 1, 0, 2, 0, 0] , [0, 0, 2, 0, 0, 1] , [0, 1, 0, 3, 0, 0] , [0, 0, 0, 0, 4, 0]
>>> np.amax[arr]
23>>> import numpy as np >>> arr = [0, 0, 1, 0, 0, 1] , [0, 1, 0, 2, 0, 0] , [0, 0, 2, 0, 0, 1] , [0, 1, 0, 3, 0, 0] , [0, 0, 0, 0, 4, 0] >>> np.amax[arr]
for i in numbers:
maximum = max[maximum,max[i]]
return maximum"
Đã trả lời ngày 25 tháng 6 lúc 3:39Jun 25 at 3:39
Sajid Khansajid KhanSajid Khan
631 Huy hiệu bạc8 Huy hiệu đồng1 silver badge8 bronze badges