如何去除Numpy网格输出中元素间的空格?
去除NumPy网格输出中的多余空格
问题说明
我需要去除NumPy网格输出里的多余空格,当前代码如下:
import numpy as np def make_grid(): grid = np.full((6, 7), " ") return grid grid = make_grid() print(grid)
当前输出(填充'1'和空值时)
[['1' '1' '1' '1' '1' '1' '1'] ['1' '1' '1' '1' '1' '1' '1'] ['1' '1' '1' '1' '1' '1' '1'] ['1' '1' '1' '1' '1' '1' '1'] ['1' '1' '1' '1' '1' '1' '1'] ['1' '1' '1' '1' '1' '1' '1']] [[' ' ' ' ' ' ' ' ' ' ' ' ' '] [' ' ' ' ' ' ' ' ' ' ' ' ' '] [' ' ' ' ' ' ' ' ' ' ' ' ' '] [' ' ' ' ' ' ' ' ' ' ' ' ' '] [' ' ' ' ' ' ' ' ' ' ' ' ' '] [' ' ' ' ' ' ' ' ' ' ' ' ' ']]
期望输出(填充'1'和空值时)
[['1''1''1''1''1''1''1'] ['1''1''1''1''1''1''1'] ['1''1''1''1''1''1''1'] ['1''1''1''1''1''1''1'] ['1''1''1''1''1''1''1'] ['1''1''1''1''1''1''1']] [[' '' '' '' '' '' '' '] [' '' '' '' '' '' '' '] [' '' '' '' '' '' '' '] [' '' '' '' '' '' '' '] [' '' '' '' '' '' '' '] [' '' '' '' '' '' '' ']]
解决方案
方法一:自定义打印函数(完全可控格式)
写一个专门的打印函数,直接按照期望的格式拼接输出内容:
import numpy as np def make_grid(): grid = np.full((6, 7), " ") return grid def print_grid(grid): print('[', end='') for idx, row in enumerate(grid): # 除第一行外,前面加空格对齐 if idx != 0: print(' ', end='') # 把每行元素直接拼接后套上括号 print(f"['{''.join(row)}']") print(']') # 测试填充'1'的情况 grid_filled = np.full((6, 7), '1') print_grid(grid_filled) print() # 测试空网格 grid_empty = make_grid() print_grid(grid_empty)
方法二:字符串替换(快速实现)
直接将NumPy默认输出的字符串进行替换,去掉元素之间的空格:
import numpy as np def make_grid(): grid = np.full((6, 7), " ") return grid # 填充'1'的情况 grid_filled = np.full((6, 7), '1') print(str(grid_filled).replace("' ", "'")) print() # 空网格情况 grid_empty = make_grid() print(str(grid_empty).replace("' ", "'"))
这个方法利用NumPy输出字符串中元素间是' '(单引号加空格)的特点,直接替换为单引号,快速得到期望格式。
内容的提问来源于stack exchange,提问作者happypanda
相关产品推荐
相关产品推荐

