29
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
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ó.
Đã 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) <map object at 0x0000018E8FA237F0> >>> 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
344K58 Huy hiệu vàng686 Huy hiệu bạc609 Huy hiệu đồng58 gold badges686 silver badges609 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,3491 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) 2
for i in numbers: maximum = max(maximum,max(i)) return maximum">>> 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) 3
Đã trả lời ngày 25 tháng 6 lúc 3:39Jun 25 at 3:39
Sajid Khansajid KhanSajid Khan
531 Huy hiệu bạc8 Huy hiệu đồng1 silver badge8 bronze badges