np.unique() 解释?

数据挖掘 麻木的
2022-03-11 03:49:11

这个 numpy 函数发生了什么: https ://numpy.org/doc/stable/reference/generated/numpy.unique.html

a = np.array([1, 2, 5, 3, 2])
u, indices = np.unique(a, return_inverse=True)

结果是:

u

数组([1, 2, 3, 5)]

indices

数组([0,1,3,2,1),dtype=int64)

u[indices]

数组([1, 2, 5, 3, 1])

u 是此数组中的单个值。什么是指数?为什么是3而不是5?u[indices] 中发生了什么?

1个回答

首先,该函数返回变量uindices

  • u包含排序的唯一元素。换句话说,没有元素重复(数字 2 不会出现两次)并且元素将从最小值到最大值列出
  • indices大小相同,基本上它包含你应该用来恢复a的索引所以当他们给你 [0,1,3,2,1] 时,在这种情况下,数字 3 指的是= [1, 2, 3, 5] 的第三个索引,在这种情况下是 5uau

您可以通过运行以下代码查看如何u以及indices可以用于恢复:a

for element in indices:
      print(u[element])

这也解释了你的最后一个问题:u[indices]它基本上给了你 back a请注意,在您的问题中u[indices]应该返回数组([1、2、5、3、2])。我假设你打错了