Python set literals并不适用于numpy unique数组

时间:2016-04-12 08:54:01

标签: python-3.x numpy set unique

我尝试在<div ng-repeat='obj1 in parent'> <div ng-repeat='obj2 in obj1'> {{content[obj1][obj2]}} </div> </div> python上使用numpy设置文字

unique

我必须使用import numpy as np # col_value_series is a series of strings # it doesn't run uniques = {np.unique(col_value_series)} # it works uniques = set(np.unique(col_value_series)) 代替set来获取一组唯一值,那么它们的不同之处是什么?它们不一样吗?

1 个答案:

答案 0 :(得分:3)

不,他们不一样。

{np.unique(col_value_series)}(或者,通常为{x})是一个元素的集合。要使其正常工作,元素x必须是可散列的[glossary],而不是。{JSON.NET考虑:

In [1]: import numpy as np

In [2]: {np.array([1])}
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-2-f73a363763ae> in <module>()
----> 1 {np.array([1])}

TypeError: unhashable type: 'numpy.ndarray'

set(np.unique(col_value_series))(或set(x))是一组取自可迭代x的元素。为此,参数x必须是可迭代的,并且其元素必须是可散列的。这些条件得到满足,因此有效。

In [3]: set(np.array([1]))
Out[3]: {1}