如何使set_printoptions(suppress = True)永久化?

时间:2009-11-25 01:51:17

标签: numpy customization ipython

在numpy中有一个函数可以使数组打印更漂亮。

set_printoptions(suppress = True)

换句话说,而不是:

array([[  0.00000000e+00,  -3.55271368e-16,   0.00000000e+00,
          1.74443793e-16,   9.68149172e-17],
       [  5.08273978e-17,  -4.42527959e-16,   1.57859836e-17,
          1.35982590e-16,   5.59918137e-17],
       [  3.00000000e+00,   6.00000000e+00,   9.00000000e+00,
          2.73835608e-16,   7.37061982e-17],
       [  2.00000000e+00,   4.00000000e+00,   6.00000000e+00,
          4.50218574e-16,   2.87467529e-16],
       [  1.00000000e+00,   2.00000000e+00,   3.00000000e+00,
          2.75582605e-16,   1.88929494e-16]])

你明白了:

array([[ 0., -0.,  0.,  0.,  0.],
       [ 0., -0.,  0.,  0.,  0.],
       [ 3.,  6.,  9.,  0.,  0.],
       [ 2.,  4.,  6.,  0.,  0.],
       [ 1.,  2.,  3.,  0.,  0.]])

如何将此设置设为永久性设置,以便在我使用IPython时执行此操作?

3 个答案:

答案 0 :(得分:2)

我已将其添加到main()中的~/.ipython/ipy_user_conf.py函数:

from numpy import set_printoptions
set_printoptions(suppress = True)

它似乎有效。

在以后的IPython版本中,运行ipython profile create,然后打开~\.ipython\profile_default\ipython_config.py并编辑以下行以添加命令:

c.InteractiveShellApp.exec_lines = [
        ...
        'import numpy as np',
        'np.set_printoptions(suppress=True)',
        ...
        ]

答案 1 :(得分:1)

您可以将这些文件添加到ipythonrc文件(位于Unix上的~/.ipython)。你需要这些行:

import_mod numpy
execute numpy.set_printoptions(suppress = True)

您也可以将其添加到自定义配置文件或使用其他配置方法:

http://ipython.scipy.org/doc/stable/html/config/customization.html

答案 2 :(得分:0)

好吧,简化它的一种方法是在你的$ PYTHONPATH上创建一个wee模块,printopts说,包含:

import numpy
numpy.set_printoptions(suppress = True)

然后在您想要更改打印时导入。您还可以在代码中导入numpy from printopts import numpy。这样你只需要一个import语句。

干杯。

ADDENDUM: 仅供交互使用的解决方案是将$ PYTHONSTARTUP环境变量设置为printopts.py文件的路径。在交互模式下,解释器在执行任何其他操作之前执行该文件。当然,然后python 总是加载numpy,伤害开始时间。

考虑了一点,我要做的是创建一个模块,比如说np.py包含

from numpy import *
set_printoptions(supress=True)

然后始终import np获取您的修改后的版本,原因在我的评论中。

如果您不介意破解,只需将set_printoptions()调用添加到the numpy/__init__.py文件,但您必须具有对numpy安装的写入权限,并记得在更新python或numpy时重复修改。我认为这不是一个好主意。