2009-11-01 38 views
24

Tôi quan tâm đến việc tìm kiếm một loại Numpy cụ thể (ví dụ: np.int64, np.uint32, np.float32, v.v.) phạm vi của tất cả các giá trị hợp lệ có thể là (ví dụ: np.int32 có thể lưu số lên đến 2 ** 31-1). Tất nhiên, tôi đoán một trong những lý thuyết có thể con số này ra cho từng loại, nhưng là có một cách để làm điều này tại thời gian chạy để đảm bảo mã di động nhiều hơn?Phạm vi giá trị gumpy hợp lệ

Trả lời

35

Trích dẫn từ một danh sách dicussion NumPy:

That kind of information is available via numpy.finfo() and numpy.iinfo(): 

In [12]: finfo('d').max 
Out[12]: 1.7976931348623157e+308 

In [13]: iinfo('i').max 
Out[13]: 2147483647 

In [14]: iinfo(uint8).max 
Out[14]: 255 

Liên kết là ở đây: link to numpy discussion group page

19

Bạn có thể sử dụng numpy.iinfo(arg).max để tìm giá trị tối đa đối với các loại nguyên của arg, và numpy.finfo(arg).max để tìm giá trị tối đa đối với các loại phao là arg.

>>> numpy.iinfo(numpy.uint64).min 
0 
>>> numpy.iinfo(numpy.uint64).max 
18446744073709551615L 
>>> numpy.finfo(numpy.float64).max 
1.7976931348623157e+308 
>>> numpy.finfo(numpy.float64).min 
-1.7976931348623157e+308 

iinfo chỉ cung cấp minmax, nhưng finfo cũng cung cấp các giá trị hữu ích như eps (nhỏ nhất số> 0 biểu diễn) và resolution (gần đúng số thập phân số có độ phân giải của các loại arg).

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