我正在试验 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])'
