Python 设置文字在 numpy 唯一数组上不起作用
Python set literals didn't work on numpy unique array
我尝试使用 python
set literals on numpy
unique
like
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
必须是可散列的 [glossary],但事实并非如此。考虑:
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}
我尝试使用 python
set literals on numpy
unique
like
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
必须是可散列的 [glossary],但事实并非如此。考虑:
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}