Skip to main content
 首页 » 编程设计

python之打印 numpy 数组作为 python 列表的成员

2025年05月04日18xing901022

我正在试验 numpy 数组,我有一个非常简单的例子:

list = [2, 3] 
list.append(np.array([3.2, 9.0, 7.6])) 

如果我执行 print(list),它会打印:[2, 3, array([3.2, 9. , 7.6])]

但是如果我执行 print(list[-1]),它只会打印 [3.2 9. 7.6] 任何人都可以为我解释这个,如果我将 numpy 数组打印为我的 python 列表的最后一个元素,为什么它打印时没有“数组”、括号和数字之间的逗号? 非常感谢

请您参考如下方法:

python 中的对象通常有两种不同的方法,它们为 print 返回自身的字符串表示形式。

它们是 __str__() 和 __repr__(),它们有不同的用途,您可以阅读 here .

要打印某些内容,您首先必须将其转换为字符串。通常 print 将尝试使用 __str__ 进行此转换。

在列表上执行 print 会调用 list.__str__(),然后尝试将其所有内部元素转换为字符串以供打印。列表用于转换这些元素的调用是 __repr__()。

所以当你打印一个list时,list得到每个元素的__repr__,但是当你仅打印该元素,print 获取该元素的 __str__。

您看到的是 numpy 数组中 __repr__ 和 __str__ 之间的区别。

x = np.array([1, 2, 3]) 
x.__str__() 
x.__repr__() 

输出:

'[1 2 3]' 
'array([1, 2, 3])'