我认为解释我的问题的最好方法就是展示它:
import numpy as np
coloured_letters = np.ndarray(shape=(2, 2), dtype="<U100")
print("\033[1;32;40m A test \033[30m")
def fill(ndarray):
y = 0
x = 0
while y < 2:
while x < 2:
ndarray[y][x] = "\033[1;32;40m A test \033[30m"
x = x + 1
x = 0
y = y + 1
fill(coloured_letters)
print(coloured_letters)
输出:
A test
[['\x1b[1;32;40m A test \x1b[30m' '\x1b[1;32;40m A test \x1b[30m']
['\x1b[1;32;40m A test \x1b[30m' '\x1b[1;32;40m A test \x1b[30m']]
其中“A 测试”为亮绿色,背景为白色。
Numpy 准确地存储了您想要的值。但是,当您打印变量coloured_letters
numpy 时,会调用__repr__
or__str__
函数将字符串转换为可打印的表示形式。这意味着它会将每个字符串转换为终端可以仅使用普通 ASCII 字符打印的内容。
如果您从中打印任何元素,coloured_letters
它将正确打印。如果您仍然想获得 numpy 数组的数组格式,您可以访问每个元素并在它们周围打印括号。
for row in range(len(coloured_letters)):
print("["+",".join(coloured_letters[row])+"]")
这将打印如下内容,每一个A test
都是白色的绿色。
[A test, A test]
[A test, A test]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句