如何在不使用 pandas 的情况下在列中打印 numpy 数组?
How to print numpy array in columns without using pandas?
这是我的基本代码:
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 个嵌入式列表,我将如何处理相同的概念?
这是一个没有循环的强大的单行解决方案:
print('\n'.join(map(lambda line: ' '.join(map(str, line)), a.T)))
a.T
转置二维数组,第一个 map
编码字符串中的一行,第二个连接字符串行(通过使用 \n
之间)。
这是带有生成器的替代版本(可能较慢):
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))
请注意,最后一个版本会产生一个尾随换行符。
您也可以使用 str
:
print(str(a.T).translate(str.maketrans({'[':'',']':''})))
1 4 7
2 5 8
3 6 9
print(str(a.T).replace('[', '').replace(']',''))
1 4 7
2 5 8
3 6 9
print(str(a.T).translate(str.maketrans({'[':'',']':''})).replace('\n ', '\n'))
1 4 7
2 5 8
3 6 9
这是我的基本代码:
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 个嵌入式列表,我将如何处理相同的概念?
这是一个没有循环的强大的单行解决方案:
print('\n'.join(map(lambda line: ' '.join(map(str, line)), a.T)))
a.T
转置二维数组,第一个 map
编码字符串中的一行,第二个连接字符串行(通过使用 \n
之间)。
这是带有生成器的替代版本(可能较慢):
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))
请注意,最后一个版本会产生一个尾随换行符。
您也可以使用 str
:
print(str(a.T).translate(str.maketrans({'[':'',']':''})))
1 4 7
2 5 8
3 6 9
print(str(a.T).replace('[', '').replace(']',''))
1 4 7
2 5 8
3 6 9
print(str(a.T).translate(str.maketrans({'[':'',']':''})).replace('\n ', '\n'))
1 4 7
2 5 8
3 6 9