我认为解释我的问题的最好方法就是展示它:
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']]
“测试”的背景为鲜绿色,带有白色背景。
答案 0 :(得分:1)
Numpy完全存储您想要的值。但是,当您打印变量coloured_letters
时,numpy会调用__repr__
或__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]