Tôi muốn kiểm tra xem một phao thực sự là 32 hoặc 64bits (và số lượng bit của một mảng nổi numpy). Phải có một built-in, nhưng chỉ không tìm ra ...Làm thế nào để kiểm tra kích thước của một phao trong python?
Trả lời
Kích thước của một Python float
có thể được yêu cầu thông qua sys.float_info
. Tuy nhiên, tôi chưa bao giờ gặp bất cứ điều gì khác hơn 64 bit, trên nhiều kiến trúc khác nhau.
Các mục của một mảng NumPy có thể có kích thước khác nhau, nhưng bạn có thể kiểm tra kích thước của chúng theo byte theo a.itemsize
, trong đó a
là mảng NumPy.
Phạm vi của các giá trị dấu phẩy động có sẵn trong đối tượng sys.float_info
.
Như Sven nói, đối với CPython float
luôn là 64 bit. Nhưng Python's language reference nói
Bạn đang ở lòng thương xót của kiến trúc máy nằm bên dưới (và C hoặc Java thực hiện) trong phạm vi chấp nhận ... ".
Vì vậy, đây không nhất thiết phải là trường hợp cho khác triển khai Python
Vì OP đang sử dụng NumPy, rất có thể anh ta không quan tâm quá nhiều đến việc triển khai Python khác. Điểm tốt, mặc dù. :) –
numpy.finfo danh sách kích thước và các thuộc tính khác của float32 ..., bao gồm
nexp:.. số bit trong số mũ bao gồm dấu hiệu và thiên vị của nó
nmant: số các bit trong phần định trị.
Trên một máy với IEEE-754 điểm nổi tiêu chuẩn,
import numpy as np
for f in (np.float32, np.float64, float):
finfo = np.finfo(f)
print finfo.dtype, finfo.nexp, finfo.nmant
sẽ in ví dụ
float32 8 23
float64 11 52
float64 11 52
(Hãy thử float16 và float128 quá.)
cộng một bit cho ký hiệu – denfromufa
float16 \t phao chính xác một nửa: bit dấu, số bit 5 bit, số bit 10 bit; float32 \t phao chính xác đơn: bit dấu, số bit 8 bít, 23 bit mantissa; float64 \t Đuôi chính xác kép: bit dấu, số bit 11 bit, số bit 52 bit – denfromufa
print numpy.finfo(numpy.float)
Machine parameters for float64
---------------------------------------------------------------------
precision= 15 resolution= 1.0000000000000001e-15
machep= -52 eps= 2.2204460492503131e-16
negep = -53 epsneg= 1.1102230246251565e-16
minexp= -1022 tiny= 2.2250738585072014e-308
maxexp= 1024 max= 1.7976931348623157e+308
nexp = 11 min= -max
---------------------------------------------------------------------
- 1. Trong Python, làm cách nào để kiểm tra kích thước của đối tượng StringIO?
- 2. Cách kiểm tra kích thước tệp trong python?
- 3. Làm thế nào để có được kích thước của kiểm tra và khoảng cách trong hộp kiểm?
- 4. Làm thế nào để kiểm tra kích thước của tệp được tải lên một cách an toàn trong bottlepy?
- 5. Làm thế nào để kiểm tra kích thước bộ sưu tập trong JPA2
- 6. Làm cách nào để kiểm tra kích thước tệp trong tập lệnh batch của Windows?
- 7. Làm thế nào để kiểm tra phụ thuộc của phao nổi
- 8. Làm thế nào để kích thước UIWebView trong một UIModalPresentationFormSheet?
- 9. Làm cách nào để kiểm tra kích thước đầu vào của tệp bằng jQuery?
- 10. Làm thế nào để kiểm soát kích thước của hộp chọn trong Ruby on Rails 3?
- 11. NSFileManager - Kiểm tra kích thước tệp?
- 12. Làm thế nào để thiết lập kích thước nhãn trên một biểu đồ pie trong python
- 13. HashMap đồng thời: kiểm tra kích thước
- 14. Làm thế nào để kiểm tra trang trí hàm Python?
- 15. kiểm tra đơn vị python cách làm thế nào để
- 16. Làm cách nào để tìm chiều dài (hoặc kích thước, kích thước) của ma trận có khối u trong python?
- 17. Làm thế nào để có được kích thước của nội dung của một biến trong PHP
- 18. Làm thế nào để thay đổi kích thước một QMainWindow thành kích thước tối thiểu
- 19. Làm thế nào để thay đổi kích thước một NumericVector?
- 20. Làm thế nào để kiểm tra mã nguồn của một phương pháp python?
- 21. Làm thế nào để tăng kích thước Heap của JVM
- 22. Làm thế nào để làm tròn một phao trong F #?
- 23. Kiểm tra kích thước ngăn xếp trong C#
- 24. Làm cách nào để kiểm tra sự tồn tại của một hàng trong SQLite bằng Python?
- 25. python đa chiều danh sách .. làm thế nào để lấy một kích thước?
- 26. Làm thế nào để kiểm tra khi nào div thay đổi kích thước, sử dụng Javascript hoặc Jquery
- 27. Làm thế nào để kiểm tra xem tuple có chứa một phần tử trong Python không?
- 28. Làm thế nào để kiểm tra xem biến là một lớp cụ thể trong python?
- 29. Python unittest: làm thế nào để kiểm tra đối số trong một ngoại lệ?
- 30. Trong Python, làm thế nào để kiểm tra xem một dòng là cuối cùng?
sys.float_info chứa nhiều tính chất hấp dẫn nhưng kích thước của một phao không phải là một trong số họ –
@ panda-34 Nó phụ thuộc chính xác những gì bạn có ý nghĩa bởi "kích thước". Trong mọi trường hợp, đó là thông tin tốt nhất bạn có thể nhận được. (Bạn có thể dễ dàng phục hồi kích thước theo bit từ thông tin trong 'sys.float_info', nhưng tôi tự hỏi nó sẽ hữu ích như thế nào.) –
OP được hỏi một cách rõ ràng về kích thước theo bit, 32 hoặc 64 và bạn không thể phục hồi kích thước bit từ float_info trừ khi bạn muốn làm một số đoán hoang dã dựa trên phạm vi số mũ và chiều dài mantissa –