首页 > 解决方案 > 将numpy数组打印为pythonlist的成员

问题描述

我正在试验 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 列表的最后一个元素,为什么它打印时没有“数组”、括号和数字之间的逗号? 非常感谢

标签: pythonarraysnumpy

解决方案


python 中的对象通常有两种不同的方法,它们为print.

它们是__str__()__repr__(),它们有不同的用途,您可以在此处阅读。

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

对列表执行print操作会导致调用 on list.__str__(),然后尝试将其所有内部元素转换为字符串以进行打印。列表用来转换这些元素的调用是__repr__().

所以当你printa时listlist得到__repr__每个元素的,但是当你只打印那个元素时,print得到__str__那个元素的。

您所看到的是数组中的和__repr__之间的区别。__str__numpy

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

输出:

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

推荐阅读