Python 关于尾随[0]在np.nonzero(arr)[0]中的作用的问题
考虑以下代码段:Python 关于尾随[0]在np.nonzero(arr)[0]中的作用的问题,python,numpy,Python,Numpy,考虑以下代码段: import numpy as np arr = np.array([True, True, False, True, False]) a = np.nonzero(arr) b = np.nonzero(arr)[0] a的输出: (array([0, 1, 3], dtype=int64),) b的输出 [0 1 3] 问题:与a的输出不同,[0]为什么会导致b的输出只包括数组而不包括数据类型?大多数python容器,包括tuple,使用repr来显示它们的元素,
import numpy as np
arr = np.array([True, True, False, True, False])
a = np.nonzero(arr)
b = np.nonzero(arr)[0]
a的输出
:
(array([0, 1, 3], dtype=int64),)
b的输出
[0 1 3]
问题:与a的输出不同,[0]为什么会导致b的输出只包括数组而不包括数据类型?大多数python容器,包括tuple
,使用repr
来显示它们的元素,而不管您是调用str(a)
还是repr(a)
。np.nonzero
的结果是一个元组
,如果您注意到最后一个右括号前的尾随逗号,您可以直观地看到该元组
当使用str
显示ndarray
时,可以通过数据明确显示的数据类型不会得到明确的数据类型标签。这包括np.int
、np.float
(即使只有一个小数点,也总是会得到一个小数点)和np.bool
。由于b
是从元组中提取的,并且有一个标准的数据类型,因此它可以以简化的形式显示
您可以通过执行repr(b)
获得类似于a
的输出格式。a
在我的机器上打印时不包括数据类型。你的np.version.version
是什么?我的是1.15.4,它是1.16.4,用于Jupyter笔记本。