Python 3.x Python集合文本没有';无法在numpy唯一阵列上工作

Python 3.x Python集合文本没有';无法在numpy唯一阵列上工作,python-3.x,numpy,set,unique,Python 3.x,Numpy,Set,Unique,我尝试使用python在numpyunique上设置文本 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而不是{}来获得一组唯一的值,那么有什么不同呢?它们不一样吗?不,它们不一样

我尝试使用
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
而不是
{}
来获得一组唯一的值,那么有什么不同呢?它们不一样吗?

不,它们不一样

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

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'

不,它们不一样

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

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'