python - 将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 列表的最后一个元素,为什么它打印时没有“数组”、括号和数字之间的逗号? 非常感谢
解决方案
python 中的对象通常有两种不同的方法,它们为print
.
它们是__str__()
和__repr__()
,它们有不同的用途,您可以在此处阅读。
要打印某些内容,您首先必须将其转换为字符串。通常print
会尝试使用__str__
来进行这种转换。
对列表执行print
操作会导致调用 on list.__str__()
,然后尝试将其所有内部元素转换为字符串以进行打印。列表用来转换这些元素的调用是__repr__()
.
所以当你print
a时list
,list
得到__repr__
每个元素的,但是当你只打印那个元素时,print
得到__str__
那个元素的。
您所看到的是数组中的和__repr__
之间的区别。__str__
numpy
x = np.array([1, 2, 3])
x.__str__()
x.__repr__()
输出:
'[1 2 3]'
'array([1, 2, 3])'
推荐阅读
- r - 如何在 R Shiny 应用程序中使相关的服务器端选择 UI 元素?
- javascript - 如何在导出时更改 highcharts 图表轴颜色?
- python - 如何在 Sphinx 中创建依赖关系图?
- r - Tidyverse:将数值数据转换为分类数据以绘制不均匀的 bin 宽度
- c - 这个基数排序代码中的最后一个“for”循环是做什么的?
- hadoop - 无法在 HDFS“datanode”中写入数据 - 已在排除列表中添加节点
- amazon-web-services - AWS NLB 连接超时背后的 Jenkins 代理 JNLP
- kubernetes - 集群移除后的悬空光盘
- ios - 我可以在我的应用程序中集成 iOS 日历吗?
- javascript - 从数组数组中删除重复值