首页 > 解决方案 > 如何在不使用熊猫的情况下在列中打印 numpy 数组?

问题描述

这是我的基本代码:

import numpy as np
a = numpy.asarray([ [1,2,3], [4,5,6], [7,8,9] ])

我想按如下方式打印数组:

1 4 7
2 5 8
3 6 9

另外,如果我的数组中有 1000 个嵌入列表,我将如何处理相同的概念?

标签: python-3.xnumpynumpy-ndarray

解决方案


这是一个没有循环的强大的单行解决方案:

print('\n'.join(map(lambda line: ' '.join(map(str, line)), a.T)))

a.T转置二维数组,第一个map编码字符串中的一行,第二个连接字符串行(通过使用\nbetween)。

这是带有生成器的替代版本(可能更慢):

print('\n'.join(' '.join(str(item) for item in line) for line in a.T))

带有一个循环的另一种解决方案(可能更慢):

for line in a.T:
    print(' '.join(str(item) for item in line))

注意最后一个版本产生一个尾随的新行。


推荐阅读