2012-05-10 32 views
26

Tôi đã tự hỏi nếu có một cách đơn giản cú pháp kiểm tra nếu mỗi phần tử trong một mảng numpy nằm giữa hai con số.Cách dễ dàng để kiểm tra xem mỗi phần tử trong một mảng có nhiều mảng nằm giữa hai giá trị?

Nói cách khác, cũng giống như numpy.array([1,2,3,4,5]) < 5 sẽ trở lại array([True, True, True, True, False]), tôi đã tự hỏi nếu nó đã có thể làm điều gì đó tương tự như thế này:

1 < numpy.array([1,2,3,4,5]) < 5

... để có được ...

array([False, True, True, True, False])

Tôi hiểu rằng tôi có thể đạt được điều này thông qua chuỗi các phép thử logic, nhưng tôi đang làm việc thông qua một số mã khá phức tạp và tôi đang tìm kiếm hoặc một giải pháp làm sạch cú pháp.

Bất kỳ mẹo nào?

Trả lời

37

một giải pháp sẽ là:

a = numpy.array([1,2,3,4,5]) 
(a > 1).all() and (a < 5).all() 

nếu bạn muốn các mảng acutal của vaues sự thật, chỉ cần sử dụng:

(a > 1) & (a < 5) 
+0

này chỉ trả về 'FALSE' và không cho tôi một giá trị boolean cho * mỗi phần tử * – blz

+1

tôi nghĩ rằng đó là những gì bạn muốn, kiểm tra xem mỗi phần tử của một mảng là giữa hai con số ... ok, tôi là gona chỉnh sửa ... – mata

+0

Không có cảm giác khó khăn =) Đây phải là một điều Tôi không nghĩ thử. Cảm ơn nhiều! – blz

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