首页 > 解决方案 > 用字符串形象地可视化 numpy 布尔数组

问题描述

假设您有一个 2D numpy 布尔数组array

[[ True  True  True  True  True  True]
 [ True  False False False False True]
 [ True  True  True  True  True  True]]

并且您希望用 ██ 替换True值和空格来以图形方式表示它们False

  ██████████████
  ██          ██
  ██████████████

我在 chararray 上花了太多时间,但尝试以下方法无济于事:

chars = np.chararrray(array.shape, unicode=True)
chars[array] = '██'

标签: pythonarraysnumpychartsascii

解决方案


您建议的解决方案有效,只需打印得更好:

chars = np.chararray(array.shape, unicode=True)
chars[array] = '██'
print(np.array2string(chars, separator='', formatter={'str_kind': lambda x: x if x else ' '}))

我不确定你是否想摆脱括号。

输出:

[[██████]
 [█    █]
 [██████]]

如果您想要不带括号(免责声明:这是懒惰的替换,您可能可以更好地删除它们):

print(np.array2string(chars, separator='', formatter={'str_kind': lambda x: x if x else ' '}).replace(" [","").replace("[","").replace("]",""))

██████
█    █
██████

推荐阅读