中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在python中格式化打印numpy

發布時間:2021-04-30 16:52:01 來源:億速云 閱讀:268 作者:Leah 欄目:開發技術

本篇文章給大家分享的是有關怎么在python中格式化打印numpy,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

Python主要用來做什么

Python主要應用于:1、Web開發;2、數據科學研究;3、網絡爬蟲;4、嵌入式應用開發;5、游戲開發;6、桌面應用開發。

1.問題描述

在使用numpy的時候,我們經常在debug的時候將numpy數組打印下來,但是有的時候數組里面都是小數,數組又比較大,打印下來的時候非常不適合觀察。這里主要講一下如何讓numpy打印的結果更加簡潔

2.問題解決

這里需要使用numpy的set_printoptions函數,對應numpy源碼如下所示:

def set_printoptions(precision=None, threshold=None, edgeitems=None,
      linewidth=None, suppress=None,
      nanstr=None, infstr=None,
      formatter=None):
 """
 Set printing options.
 These options determine the way floating point numbers, arrays and
 other NumPy objects are displayed.
 Parameters
 ----------
 precision : int, optional
  Number of digits of precision for floating point output (default 8).
 threshold : int, optional
  Total number of array elements which trigger summarization
  rather than full repr (default 1000).
 edgeitems : int, optional
  Number of array items in summary at beginning and end of
  each dimension (default 3).
 linewidth : int, optional
  The number of characters per line for the purpose of inserting
  line breaks (default 75).
 suppress : bool, optional
  Whether or not suppress printing of small floating point values
  using scientific notation (default False).
 nanstr : str, optional
  String representation of floating point not-a-number (default nan).
 infstr : str, optional
  String representation of floating point infinity (default inf).
 formatter : dict of callables, optional

這里我們主要用到其中的兩個屬性:

設置precision來控制小數點后面最多顯示的位數

設置suppress來取消使用科學計數法

2.1 簡單示例

一個簡單的利用set_printoptions的例子如下所示:

import numpy as np
a = np.random.random(3)
print('before set options: \n {}'.format(a))
np.set_printoptions(precision=3, suppress=True)
print('after set options: \n {}'.format(a))
>>>
before set options: 
 [ 0.05856348 0.5417039 0.76520603]
after set options: 
 [ 0.059 0.542 0.765]


可以看到,設置了打印的options之后,打印下來的結果簡潔了很多,絕大多數時候我們只需要觀察簡潔的打印結果,太過精確的結果反而會因為占位太長不易于觀察

2.2完整示例

2.1的例子中存在的一個問題是,一旦我們在程序的某一行設置了printoptions之后,接下來所有的打印過程都會受到影響,然而有的時候我們并不希望如此,這個時候我們可以添加一個上下文管理器,只在規定的上下文環境當中設置我們需要的打印參數,其他地方仍然使用默認的打印參數,代碼如下:

import numpy as np
from contextlib import contextmanager
@contextmanager
def printoptions(*args, **kwargs):
 original_options = np.get_printoptions()
 np.set_printoptions(*args, **kwargs)
 try:
  yield
 finally:
  np.set_printoptions(**original_options)
x = np.random.random(3)
y = np.array([1.5e-2, 1.5, 1500])
print('-----------before set options-----------')
print('x = {}'.format(x))
print('y = {}'.format(y))
with printoptions(precision=3, suppress=True):
 print('------------set options------------')
 print('x = {}'.format(x))
 print('y = {}'.format(y))
print('---------------set back options-------------')
print('x = {}'.format(x))
print('y = {}'.format(y))
>>>
-----------before set options-----------
x = [ 0.3802371 0.7929781 0.14008782]
y = [ 1.50000000e-02 1.50000000e+00 1.50000000e+03]
------------set options------------
x = [ 0.38 0.793 0.14 ]
y = [ 0.015  1.5 1500. ]
---------------set back options-------------
x = [ 0.3802371 0.7929781 0.14008782]
y = [ 1.50000000e-02 1.50000000e+00 1.50000000e+03]

以上就是怎么在python中格式化打印numpy,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

邳州市| 阿拉善左旗| 郸城县| 高州市| 北票市| 宁波市| 博爱县| 丹棱县| 正安县| 龙南县| 北票市| 犍为县| 济源市| 柳河县| 花莲市| 达州市| 灵丘县| 青海省| 龙游县| 遂平县| 德阳市| 顺义区| 东台市| 观塘区| 土默特左旗| 延川县| 高碑店市| 渑池县| 旺苍县| 西吉县| 新竹市| 新乐市| 新源县| 青铜峡市| 北辰区| 铜鼓县| 通河县| 乾安县| 吉林市| 黄大仙区| 秦安县|