Làm thế nào tôi có thể nhận được vị trí của vật phẩm lớn nhất trong một mảng đa chiều?Python: lấy vị trí của vật phẩm lớn nhất trong một mảng có nhiều mảng
Trả lời
Phương pháp argmax()
sẽ hữu ích.
Cập nhật
(Sau khi đọc bình luận) Tôi tin rằng phương pháp argmax()
sẽ làm việc cho mảng đa chiều là tốt. Các tài liệu liên quan cho một ví dụ về điều này:
>>> a = array([[10,50,30],[60,20,40]])
>>> maxindex = a.argmax()
>>> maxindex
3
Cập nhật 2
(Nhờ KennyTM 's bình luận) Bạn có thể sử dụng unravel_index(a.argmax(), a.shape)
để có được chỉ số như một tuple:
>>> from numpy import unravel_index
>>> unravel_index(a.argmax(), a.shape)
(1, 0)
(chỉnh sửa) Tôi đã đề cập đến câu trả lời cũ đã bị xóa. Và câu trả lời được chấp nhận đến sau tôi. Tôi đồng ý rằng argmax
tốt hơn câu trả lời của tôi.
Nó sẽ không dễ đọc hơn/trực quan để làm như thế này?
numpy.nonzero(a.max() == a)
(array([1]), array([0]))
Hoặc,
numpy.argwhere(a.max() == a)
Không cần thiết chậm, bởi vì bạn tính toán tối đa và sau đó so sánh nó với tất cả a. unravel_index (a.argmax(), a.shape). – Peter
Tôi đã bình chọn cho điều này vì nó không giả định về số lần xuất hiện của a.max() trong a. Trong khi a.argmax() sẽ trả về sự xuất hiện "đầu tiên" (được xác định không đúng trong trường hợp mảng đa chiều vì nó phụ thuộc vào sự lựa chọn đường dẫn truyền tải). https://docs.scipy.org/doc/numpy/reference/generated/numpy.argmax.html#numpy.argmax Tôi cũng nghĩ np.where() là tự nhiên/dễ đọc hơn là np.nonzero(). – FizxMike
- 1. Cách lấy vị trí của một khóa trong một mảng
- 2. TWIG cách lấy vật phẩm đầu tiên từ mảng
- 3. Tìm vị trí của một giá trị trong mảng PostgreSQL
- 4. Lấy mục xuất hiện nhiều lần nhất trong một mảng
- 5. Grep để tìm vật phẩm trong mảng Perl
- 6. Bộ lọc khoảng cách địa lý của ElasticSearch với nhiều vị trí trong mảng - có thể?
- 7. Nhận giá trị chỉ mục mảng của 1000 mục lớn nhất trong một mảng bằng LINQ
- 8. Yếu tố vị trí trong mảng
- 9. MongoDB chọn vị trí trong mảng _id?
- 10. Số lớn nhất và nhỏ nhất trong một mảng
- 11. Tìm chỉ mục của một danh sách giá trị trong một mảng có nhiều mảng
- 12. Tìm một mảng bên trong một mảng lớn hơn
- 13. Lấy chiều dài mảng của một mảng 2D trong Java
- 14. Trong Ruby, cách sạch nhất để lấy chỉ số của giá trị lớn nhất trong một mảng là gì?
- 15. Xác minh vị trí mảng chuỗi Android
- 16. mảng JavaScript lên vị trí số
- 17. Tìm dãy số có tổng lớn nhất của các phần tử trong một mảng
- 18. Lấy chỉ mục của một mục trong danh sách mảng;
- 19. Hoán đổi cột trong một mảng có nhiều mảng?
- 20. Chọn vị trí không bằng nhiều giá trị của các khóa của mảng kết hợp
- 21. Tìm chiều dài của một Mảng nhân vật trong C
- 22. rpy2: Chuyển đổi một data.frame thành mảng có nhiều mảng
- 23. Nhận vị trí vật lý của văn bản trong UILabel
- 24. Lấy phần tử cuối cùng của một mảng trong CoffeeScript
- 25. Chèn một hàng tại một vị trí cụ thể trong một mảng 2d có dạng gumpy?
- 26. Tại sao viết nhiều mảng byte nhỏ vào một tệp nhanh hơn viết một mảng lớn?
- 27. Cách lấy vị trí của một phần tử trong UIWebView?
- 28. Python/Numpy - Sản phẩm chéo của hàng phù hợp trong hai mảng
- 29. Tìm vị trí của một phần tử trong một mảng đơn giản
- 30. Đặt lại vị trí một yếu tố vào phía trước của một mảng trong Ruby
Nhưng tôi có một mảng đa chiều. – kame
@kame: câu trả lời được cập nhật. Xem ở trên. –
Sử dụng 'unravel_index (a.argmax(), a.shape)' để lấy chỉ mục làm bộ tuple. – kennytm