【问题标题】:Format output of python numpy array, no [ ] or ' 'python numpy数组的格式输出,没有[]或''
【发布时间】:2021-02-06 07:41:33
【问题描述】:

我是 python 和 numpy 模块的新手。我有 2 个数组,dtype=str,我希望它们打印为 2 列。我目前可以让两个数组一起打印:

[ 'Bob' 'Bobby' ...][ 'Dave' 'David' ...](数组中有几列,我希望每个数组为 1 列)

但我希望它们像这样打印:

Bob Dave
Bobby David
... ...

输出中没有 [ ] 或 ' '。

【问题讨论】:

    标签: arrays python-3.x numpy


    【解决方案1】:

    制作 2 个数组(根据您的显示器改编 - 但简单的复制粘贴会更好):

    In [63]: arr1 = np.array([ 'Bob', 'Bobby', '...'])
        ...: arr2 = np.array([ 'Dave', 'David', '...'])
    In [64]: arr1
    Out[64]: array(['Bob', 'Bobby', '...'], dtype='<U5')
    In [65]: arr2
    Out[65]: array(['Dave', 'David', '...'], dtype='<U5')
    

    连接 2 个一维数组的一种常用方法:

    In [66]: np.vstack((arr1,arr2))
    Out[66]: 
    array([['Bob', 'Bobby', '...'],
           ['Dave', 'David', '...']], dtype='<U5')
    

    这可以转换成你想要的“列”:

    In [67]: _.T
    Out[67]: 
    array([['Bob', 'Dave'],
           ['Bobby', 'David'],
           ['...', '...']], dtype='<U5')
    

    另一种方式:

    In [68]: np.stack((arr1,arr2), axis=1)
    Out[68]: 
    array([['Bob', 'Dave'],
           ['Bobby', 'David'],
           ['...', '...']], dtype='<U5')
    

    这样的二维数组显示是你想要的,但我认为理解底层数据结构比正确获取格式细节更重要。

    但是格式化这样一个不带引号和 [] 的数组的最简单方法是使用旨在写入 csv 文件的函数:

    In [69]: np.savetxt('test.txt', _, fmt='%10s')
    In [70]: cat test.txt
           Bob       Dave
         Bobby      David
           ...        ...
    

    这个函数相当简单,对数组的行进行迭代,并对行进行格式化。这可能是一个很好的练习,可以使用您必须在 Python 简介中学习过的基本 Python 字符串格式!

    或将数组视为列表,只需迭代和打印:

    In [71]: for a, b in zip(arr1,arr2):
        ...:     print(a,b)
        ...: 
    Bob Dave
    Bobby David
    ... ...
    

    你看,这不是numpy 的任务;最好使用字符串列表。

    或者pandas:

    In [72]: pd.DataFrame(Out[67])
    Out[72]: 
           0      1
    0    Bob   Dave
    1  Bobby  David
    2    ...    ...
    

    【讨论】:

      【解决方案2】:

      使用数组迭代并获取值而不是创建一个字符串并打印。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-07-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-17
        • 2021-12-02
        • 2012-12-23
        相关资源
        最近更新 更多