2010-08-17 52 views
19

làm cách nào để tìm giá trị nhỏ nhất trong một mảng 100 float trong python? Tôi đã thử minindex=darr.argmin()print darr[minindex] với import numpy (darr là tên của mảng)tìm giá trị nhỏ nhất trong một mảng float

nhưng tôi nhận được: minindex=darr.argmin()

AttributeError: 'list' object has no attribute 'argmin'

những gì có thể là vấn đề? Có một lựa chọn tốt hơn?

cảm ơn trước

+0

cả hai người trả lời cảm ơn bạn, nhưng không sử dụng numpy ở tất cả dường như tốt hơn. – pjehyun

Trả lời

19

Nếu bạn muốn sử dụng NumPy, bạn phải xác định darr là một mảng NumPy, không phải là một list:

import numpy as np 
darr = np.array([1, 3.14159, 1e100, -2.71828]) 
print(darr.min()) 

darr.argmin() sẽ cung cấp cho bạn chỉ mục tương ứng với mức tối thiểu.

Lý do bạn gặp phải lỗi là vì argmin là một phương thức được hiểu bởi các mảng có nhiều mảng, nhưng không phải bởi Python lists.

+0

'np.amin (darr)' chấp nhận danh sách – endolith

+2

Đúng, mặc dù dưới mui xe 'np.amin (darr)' kết thúc gọi 'np.asarray (darr) .min()', và chậm hơn khoảng 50% do mã '__array_wrap__' bổ sung. – unutbu

Các vấn đề liên quan