这在我的数组(Python)中\n来自何处?
我正在尝试为以下numpy数组创建文本字符串:这在我的数组(Python)中\n来自何处?,python,arrays,newline,word-wrap,Python,Arrays,Newline,Word Wrap,我正在尝试为以下numpy数组创建文本字符串: A = array([0, 0, 0, 0, 0.64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0]) 我可以通过这行代码轻松完成这项工作: text = f'{A}' 我遇到的问题是,每当我使用这个f{}从数组中创建字符串时,它都会输出相同的数组,但在某些字符后面有一个\n: text '[0. 0. 0. 0.64 0. 0. 0. 0. 0. 0. 0. 0.
A = array([0, 0, 0, 0, 0.64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0])
我可以通过这行代码轻松完成这项工作:
text = f'{A}'
我遇到的问题是,每当我使用这个f{}从数组中创建字符串时,它都会输出相同的数组,但在某些字符后面有一个\n:
text
'[0. 0. 0. 0.64 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n 1. 0. 0. 0. ]'
我试图在绘图标题中使用此数组,因此我不希望数组文本换行到新行,因为它会使读取/查看变得混乱
我尝试在文本上使用rstrip('\n'),但它没有删除'\n'。有人知道发生了什么事吗?为什么字符串数组中会出现这个\n?您不需要声明
array()
来完成您试图执行的操作:
A = [0, 0, 0, 0, 0.64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0]
print(A)
[0, 0, 0, 0, 0.64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0]
print(f'{A}')
[0, 0, 0, 0, 0.64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0]
A
[0, 0, 0, 0, 0.64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0]
看起来您正在那里创建一个NumPy N维数组,然后将其转换为字符串
,因此当您调用print()
时,它正在打印该数组的字符串表示形式。除非您特别需要NumPy阵列,否则您可以像上面一样进行操作,或者如果需要:
from numpy import array
A = [0, 0, 0, 0, 0.64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0]
B = array(A)
print(B)
[0. 0. 0. 0. 0.64 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 1. 0. 0. 0. ]
print(f'{B}')
[0. 0. 0. 0. 0.64 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 1. 0. 0. 0. ]
B
array([0. , 0. , 0. , 0. , 0.64, 0. , 0. , 0. , 0. , 0. , 0. ,
0. , 0. , 0. , 0. , 1. , 0. , 0. , 0. ])
如果必须将NumPy数组呈现为字符串
,则可以执行以下操作:
text = f'{A}'
text = text.replace("\n","")
或者,正如拉蒙·马尔克斯(Ramón Márquez)也提到的,您可以简单地增加打印选项
线宽:
numpy.set_printoptions(linewidth=96)
有关NumPy阵列的文档:
有关NumPy打印选项的文档:它与
如果将线宽设置为96-str(A)
的长度,而没有任何\n
加1-,则不会插入换行符:
numpy.set_printoptions(linewidth=96)
这可以工作
text='''.join(str(A)中i的i.strip())
非常感谢这篇全面的文章,现在这更有意义了