Làm cách nào để tránh định dạng hàm mũ trong python?

tan(pi/2) làm ví dụ của tôi. Không làm tròn, nó trả về 1. 633123935319537e+16 (điều này là do pi được cho dưới dạng hằng số, không phải là số vô tỷ). Tuy nhiên, khi tôi đặt nó qua hàm round, nó trả về -272241. 80841

>>> from math import pi, tan
>>> tan(pi/2)
1.633123935319537e+16
>>> round(tan(pi/2), 5)
1.633123935319537e+16

Số khá lớn đó bằng 16331239353195370. 0 và là số nguyên không có phần phân số

>>> tan(pi/2) % 1.0
0.0

Vì vậy, khi bạn làm tròn nó đến năm chữ số thập phân, không có gì thay đổi

Đối với ví dụ khác của bạn, một lần nữa bạn nên kiểm tra mã của mình

>>> from math import cos
>>> cos(pi/2)
6.123233995736766e-17
>>> round(cos(pi/2), 5)
0.0

Cũng không phải là tiêu cực

Python dựa vào chất lượng của các quy trình toán học được cung cấp bởi nền tảng của bạn (hệ điều hành và phần cứng). Rất khó có khả năng là nếu bạn đang chạy một số kết hợp kỳ lạ với các thói quen dấu chấm động thực sự tồi tệ, thì Python có thể trả về kết quả kỳ lạ mà bạn đã thấy

Nhưng nhiều khả năng là bạn đã phạm sai lầm ở đâu đó

Ngoài ra, hầu hết các nhận xét của Terry về sự khác biệt giữa làm tròn số float và hiển thị số float đều hợp lệ

Phao trong Python có độ chính xác 53 bit. Đó là khoảng 16 hoặc 17 chữ số thập phân. (Để đơn giản, hãy gọi nó là 16. ) Phao 0. 0 thực sự là 0. 0000000000000000 mặc dù nó được hiển thị bằng số lượng số 0 tối thiểu cần thiết. Bạn không thể làm tròn nó thành 0. 00000 sử dụng hàm round. Nhưng bạn có thể sử dụng định dạng chuỗi để hiển thị nó đến năm chữ số thập phân

Terry nói

pi là một hằng số

Chắc chắn, đó là những gì Pattydaone nói. Nhưng toán học thực sự π là một số vô tỉ, và tan(π/2) là không xác định

Đôi khi chúng ta có các yếu tố nằm trong ký hiệu khoa học và chúng ta phải loại bỏ ký hiệu khoa học để đơn giản. Với mục đích này, chúng tôi gọi một hàm có tên là numpy. set_printoptions(). Chức năng này sẽ giúp loại bỏ ký hiệu khoa học và hiển thị số ở một độ chính xác nhất định. Trong bài viết này, chúng ta sẽ xem Cách ngăn chặn việc sử dụng các ký hiệu khoa học cho các số nhỏ bằng NumPy trong Python

cú pháp. cục mịch. set_printoptions(precision=Không, ngưỡng=Không, edgeitems=Không, linewidth=Không, triệt tiêu=Không, nanstr=Không, infstr=Không, định dạng=Không, sign=Không, floatmode=Không, *, kế thừa=Không)

Thông số

  • độ chính xác. Số chữ số chính xác cho đầu ra dấu phẩy động (8 mặc định)
  • kìm nén. Nếu Đúng, luôn in các số dấu phẩy động bằng cách sử dụng ký hiệu dấu chấm cố định, nếu Sai, thì ký hiệu khoa học được sử dụng khi giá trị tuyệt đối của số nhỏ nhất < 1e-4

Phần còn lại của các thông số là tùy chọn

Loại bỏ việc sử dụng các ký hiệu khoa học bằng cách sử dụng Numpy trong Python

ví dụ 1

Ở đây chúng tôi loại bỏ các ký hiệu khoa học cho các phần tử của mảng 1-D NumPy với độ chính xác 2

Python3




# Importing Numpy library

import numpy as np

 

# Creating a 1-D Numpy array

num___=

Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
0
Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
1
Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
2
Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
3
Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
4
Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
5
Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
4
Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
7
Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
4
Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
9
Numpy array values with precision 4:
[[[ 3.1415  2.7183]
 [ 6.6269  0.    ]]
[[34.8454  0.    ]
 [ 7.      8.    ]]]
0

 

Numpy array values with precision 4:
[[[ 3.1415  2.7183]
 [ 6.6269  0.    ]]
[[34.8454  0.    ]
 [ 7.      8.    ]]]
1

Numpy array values with precision 4:
[[[ 3.1415  2.7183]
 [ 6.6269  0.    ]]
[[34.8454  0.    ]
 [ 7.      8.    ]]]
2

Numpy array values with precision 4:
[[[ 3.1415  2.7183]
 [ 6.6269  0.    ]]
[[34.8454  0.    ]
 [ 7.      8.    ]]]
3
Numpy array values with precision 4:
[[[ 3.1415  2.7183]
 [ 6.6269  0.    ]]
[[34.8454  0.    ]
 [ 7.      8.    ]]]
4
Numpy array values with precision 4:
[[[ 3.1415  2.7183]
 [ 6.6269  0.    ]]
[[34.8454  0.    ]
 [ 7.      8.    ]]]
5
Numpy array values with precision 4:
[[[ 3.1415  2.7183]
 [ 6.6269  0.    ]]
[[34.8454  0.    ]
 [ 7.      8.    ]]]
6

Numpy array values with precision 4:
[[[ 3.1415  2.7183]
 [ 6.6269  0.    ]]
[[34.8454  0.    ]
 [ 7.      8.    ]]]
7_______96_______
Numpy array values with precision 4:
[[[ 3.1415  2.7183]
 [ 6.6269  0.    ]]
[[34.8454  0.    ]
 [ 7.      8.    ]]]
9
[0.00 1.59 150.45 0.29]
0=
[0.00 1.59 150.45 0.29]
2
Numpy array values with precision 4:
[[[ 3.1415  2.7183]
 [ 6.6269  0.    ]]
[[34.8454  0.    ]
 [ 7.      8.    ]]]
6

Numpy array values with precision 4:
[[[ 3.1415  2.7183]
 [ 6.6269  0.    ]]
[[34.8454  0.    ]
 [ 7.      8.    ]]]
3
[0.00 1.59 150.45 0.29]
5

đầu ra

Numpy array values with precision 2:
[  0.     1.59 150.45   0.29]

ví dụ 2

Ở đây chúng tôi loại bỏ các ký hiệu khoa học cho các phần tử của mảng 2-D NumPy với độ chính xác 3

Python3




# Importing Numpy library

import numpy as np

 

[0.00 1.59 150.45 0.29]
9

num___= # Importing Numpy library2# Importing Numpy library3

Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
4# Importing Numpy library5# Importing Numpy library6

# Importing Numpy library7# Importing Numpy library8# Importing Numpy library9

Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
2import1
Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
4import3
Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
2import5import6

 

import7

Numpy array values with precision 4:
[[[ 3.1415  2.7183]
 [ 6.6269  0.    ]]
[[34.8454  0.    ]
 [ 7.      8.    ]]]
2

Numpy array values with precision 4:
[[[ 3.1415  2.7183]
 [ 6.6269  0.    ]]
[[34.8454  0.    ]
 [ 7.      8.    ]]]
3
Numpy array values with precision 4:
[[[ 3.1415  2.7183]
 [ 6.6269  0.    ]]
[[34.8454  0.    ]
 [ 7.      8.    ]]]
4numpy as np1
Numpy array values with precision 4:
[[[ 3.1415  2.7183]
 [ 6.6269  0.    ]]
[[34.8454  0.    ]
 [ 7.      8.    ]]]
6

Numpy array values with precision 4:
[[[ 3.1415  2.7183]
 [ 6.6269  0.    ]]
[[34.8454  0.    ]
 [ 7.      8.    ]]]
7_______96_______ numpy as np5
[0.00 1.59 150.45 0.29]
0_______96_______
[0.00 1.59 150.45 0.29]
2
Numpy array values with precision 4:
[[[ 3.1415  2.7183]
 [ 6.6269  0.    ]]
[[34.8454  0.    ]
 [ 7.      8.    ]]]
6

Numpy array values with precision 4:
[[[ 3.1415  2.7183]
 [ 6.6269  0.    ]]
[[34.8454  0.    ]
 [ 7.      8.    ]]]
3
[0.00 1.59 150.45 0.29]
5

đầu ra

Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]

ví dụ 3

Ở đây chúng tôi loại bỏ các ký hiệu khoa học cho các phần tử của mảng 3-D NumPy với độ chính xác 4

Python3




# Importing Numpy library

import numpy as np

 

# Creating a 1-D Numpy array5

num___= # Creating a 1-D Numpy array8# Creating a 1-D Numpy array9

Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
4num1# Importing Numpy library6

# Importing Numpy library7# Importing Numpy library8num5

Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
4import3
Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
2import5=0

=1=2=3

Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
4=5
Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
2import1# Importing Numpy library6

# Importing Numpy library7# Importing Numpy library8

Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
01
Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
4
Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
03
Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
04

 

Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
05

Numpy array values with precision 4:
[[[ 3.1415  2.7183]
 [ 6.6269  0.    ]]
[[34.8454  0.    ]
 [ 7.      8.    ]]]
2

Numpy array values with precision 4:
[[[ 3.1415  2.7183]
 [ 6.6269  0.    ]]
[[34.8454  0.    ]
 [ 7.      8.    ]]]
3
Numpy array values with precision 4:
[[[ 3.1415  2.7183]
 [ 6.6269  0.    ]]
[[34.8454  0.    ]
 [ 7.      8.    ]]]
4
Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
09
Numpy array values with precision 4:
[[[ 3.1415  2.7183]
 [ 6.6269  0.    ]]
[[34.8454  0.    ]
 [ 7.      8.    ]]]
6

Numpy array values with precision 4:
[[[ 3.1415  2.7183]
 [ 6.6269  0.    ]]
[[34.8454  0.    ]
 [ 7.      8.    ]]]
7_______96_______
Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
13_______22_______0=
[0.00 1.59 150.45 0.29]
2
Numpy array values with precision 4:
[[[ 3.1415  2.7183]
 [ 6.6269  0.    ]]
[[34.8454  0.    ]
 [ 7.      8.    ]]]
6

Numpy array values with precision 4:
[[[ 3.1415  2.7183]
 [ 6.6269  0.    ]]
[[34.8454  0.    ]
 [ 7.      8.    ]]]
3
[0.00 1.59 150.45 0.29]
5

đầu ra

Numpy array values with precision 4:
[[[ 3.1415  2.7183]
 [ 6.6269  0.    ]]
[[34.8454  0.    ]
 [ 7.      8.    ]]]

Ví dụ 4

Ở đây chúng tôi đã sử dụng tham số định dạng cho hàm set_printoptions()

Python3




import numpy as np

 

Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
22_______96_______
[0.00 1.59 150.45 0.29]
2
Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
4

Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
26_______3_______27=___
Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
29
Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
30
Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
31
Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
32
Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
33
Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
34
Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
35

 

Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
36_______96_______
Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
0
Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
1
Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
2
Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
3
Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
4
Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
5
Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
4
Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
7
Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
4
Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
9
Numpy array values with precision 3:
[[3.142 2.718]
[0.    0.   ]]
48