1

factorize()我正在使用返回cupy数组和字符串元组的函数来转换分类特征。我将cupy数组分配给一个名为codes. 但是,我似乎无法获得codes使用的独特价值codes.unique()

它返回一条错误消息:

AttrubuteError:“cupy.core.core.ndarray”对象没有“唯一”属性

# use factorize to create continuous integers from a categorical feature (returns a tuple)
codes, uniques = df_train['product_id'].factorize()
codes.unique()
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-59-27db0fac06a1> in <module>()
----> 1 codes.unique()

AttributeError: 'cupy.core.core.ndarray' object has no attribute 'unique'

代码

感谢帮助和建议使其发挥作用

4

2 回答 2

1

CuPy 被设计为与 NumPy 高度兼容,在这种情况下注意numpy.ndarray也没有unique()方法;对于 NumPy 和 CuPy,它作为常规函数 ( numpy.unique()/ cupy.unique()) 存在于主命名空间下。所以这是一个无效的用法,不特定于 CuPy 恕我直言。

于 2021-04-19T04:32:25.163 回答
0

如果它是一个常规的 NumPy 数组,我认为你需要调用cupy.unique(codes)而不是像你那样调用。codes.unique()文档:https ://docs.cupy.dev/en/stable/reference/generated/cupy.unique.html

它是在这个 PR 中添加的:https ://github.com/cupy/cupy/pull/1140正如您可能看到的那样,它没有将它添加为数组类型的方法。

于 2021-04-18T07:29:11.287 回答