给定一个numpy数组,a,如何打印它,以便用括号而不是括号括起来?
import numpy as np
a = np.array([1,2,3])
>>> print(a)
[1 2 3]
我想
>>> print(whatever)
(1 2 3)
答案 0 :(得分:2)
如上面评论(@Psidom)中所述的选项是
str()
将numpy输出转换为字符串。 然后使用replace()
手动用括号替换左括号和右括号。 replace()
是一个字符串方法
import numpy as np
a = np.array([1,2,3])
print(a)
[1 2 3]
print(str(a).replace('[', '(').replace(']', ')'))
(1 2 3)
在这种情况下,str()
将输出从numpy转换为字符串表示形式,以便您可以利用与字符串关联的各种字符串方法。
将输出转换为字符串后,您可以立即调用replace()
方法...因为replace()
方法的输出也是字符串,所以您可以链接replace()
方法依次进行多次替换。
使用链式replace()
方法的替代方法是创建一个正则表达式并使用re.sub()
之类的东西,但对于像这样的简单情况来说,这似乎有些过分。
答案 1 :(得分:1)
numpy
使用[]
就像list
一样。结构化数组记录标有()
以突出显示它们的区别:
In [286]: a = np.array([1,2,3])
In [287]: a.view('i,i,i')
Out[287]:
array([(1, 2, 3)],
dtype=[('f0', '<i4'), ('f1', '<i4'), ('f2', '<i4')])
提取记录会产生类似于显示的元组:
In [288]: a.view('i,i,i')[0]
Out[288]: (1, 2, 3)
In [289]: tuple(a.tolist())
Out[289]: (1, 2, 3)
使用()
并且省略逗号的正常显示不是。为此,您需要自己进行格式化,或在公共显示器上执行某种替换。
如果检查程序需要()
而没有逗号,那就有问题了。这不正常。