Home > Backend Development > Python Tutorial > How to Pretty-Print NumPy Arrays Without Scientific Notation and with Specified Precision?

How to Pretty-Print NumPy Arrays Without Scientific Notation and with Specified Precision?

DDD
Release: 2024-12-08 11:41:11
Original
1059 people have browsed it

How to Pretty-Print NumPy Arrays Without Scientific Notation and with Specified Precision?

Pretty-print a NumPy array without scientific notation and with given precision

When printing NumPy arrays of floats, it often results in several decimals and uses scientific format, making it hard to read, especially for low-dimensional arrays. Since NumPy arrays need to be printed as strings, this raises the question of finding a solution for this issue.

Using numpy.set_printoptions allows you to set the desired precision for your output. By setting this option, you can control the number of decimal places displayed.

To further improve readability, you can disable scientific notation using the suppress option. This ensures that small numbers are displayed in standard notation.

import numpy as np

x = np.random.random(10)
print(x)
# [ 0.07837821  0.48002108  0.41274116  0.82993414  0.77610352  0.1023732
#   0.51303098  0.4617183   0.33487207  0.71162095]

np.set_printoptions(precision=3)
print(x)
# [ 0.078  0.48   0.413  0.83   0.776  0.102  0.513  0.462  0.335  0.712]
Copy after login
y = np.array([1.5e-10, 1.5, 1500])
print(y)
# [  1.500e-10   1.500e+00   1.500e+03]

np.set_printoptions(suppress=True)
print(y)
# [    0.      1.5  1500. ]
Copy after login

If you're using NumPy version 1.15.0 or later, you can leverage the numpy.printoptions context manager for localized application of print options. Within the context, desired print settings are applied, but revert to default settings outside.

x = np.random.random(10)
with np.printoptions(precision=3, suppress=True):
    print(x)
    # [ 0.073  0.461  0.689  0.754  0.624  0.901  0.049  0.582  0.557  0.348]
Copy after login

To prevent zeros from being removed from the end of floats, you can utilize the formatter parameter in np.set_printoptions. This parameter allows you to specify a format function for each data type.

np.set_printoptions(formatter={'float': '{: 0.3f}'.format})
print(x)
# Output: [ 0.078  0.480  0.413  0.830  0.776  0.102  0.513  0.462  0.335  0.712]
Copy after login

The above is the detailed content of How to Pretty-Print NumPy Arrays Without Scientific Notation and with Specified Precision?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template