【问题标题】:Pandas changes default numpy array formatPandas 更改了默认的 numpy 数组格式
【发布时间】:2012-06-26 22:29:49
【问题描述】:

有什么方法可以防止pandas 更改numpy 数组的默认打印格式?

使用普通的numpy,我得到:

>>> numpy.array([123.45, 0.06])
array([  1.23450000e+02,   6.00000000e-02])

导入pandas后,我得到:

>>> numpy.array([123.45, 0.06])
array([ 123.45,    0.06])

我可以阻止它作为配置设置执行此操作吗?我不想用“foo=np.get_printoptions(); import pandas; np.set_printoptions(**foo)”来包装每个“import pandas”,但这是我能想到的最好的方法。

事实上,如果我在一个地方导入 pandas,我会从另一个地方得到 doctest 错误。

【问题讨论】:

    标签: python numpy pandas


    【解决方案1】:

    你应该只需要用 np.set_printoptions(foo) 包装第一个 import pandas,因为 python 会缓存它。见下文:

    import numpy
    >>> numpy.array([123.45, 0.06])
    array([  1.23450000e+02,   6.00000000e-02])
    >>> import pandas
    >>> numpy.array([123.45, 0.06])
    array([ 123.45,    0.06])
    >>> numpy.set_printoptions(edgeitems=3,infstr='inf', linewidth=75, nanstr='nan', precision=8, suppress=False, threshold=1000)
    >>> numpy.array([123.45, 0.06])
    array([  1.23450000e+02,   6.00000000e-02])
    >>> import pandas
    >>> numpy.array([123.45, 0.06])
    array([  1.23450000e+02,   6.00000000e-02])
    

    【讨论】:

    • 谢谢,但我们在测试中使用nose 加载,这意味着我不知道模块将以什么顺序加载。我总是可以将它放在顶级包级别的 init 中,但这感觉很侵入。另外,我必须更改其他所有人的文档测试。我不禁认为 pandas 不应该改变 numpy 包级全局变量。
    【解决方案2】:

    这有点烦人,因为我认为 NumPy 应该将 suppress=True 作为默认值。我正在改变熊猫而不是改变它。

    【讨论】:

    • 谢谢,韦斯!那很好啊。如果我在 DataGotham 遇到你,我会当面说声谢谢。
    猜你喜欢
    • 2022-10-13
    • 2020-10-02
    • 2016-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多