考虑以下代码片段:
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的输出不同,为什么b的输出只包括数组而不是dtype?
发布于 2019-09-28 01:01:45
大多数python容器,包括tuple,都使用repr来显示它们的元素,而不管您是调用str(a)还是repr(a)。np.nonzero的结果是一个tuple,如果您在最后的结束括号之前注意到后面的逗号,就可以直观地看到它。
当ndarray与str一起显示时,可以通过数据明确显示的dtype不会得到显式的dtype标签。这包括np.int_、np.float_ (它总是得到小数点,即使只是一个尾随点)和np.bool_。由于b是从元组中提取的,并且具有标准的dtype,所以它可以以简化的形式显示。
您可以通过执行a来获得类似于您在repr(b)中看到的输出格式。
https://stackoverflow.com/questions/58142563
复制相似问题