python - 如何在 numpy 数组中找到唯一的对象?
问题描述
似乎并非在所有情况下都np.unique
完全支持:objects
v = np.array(["abc",None,1,2,3,"3",2])
np.unique(v, return_counts=True)
结果是
TypeError:“NoneType”和“str”的实例之间不支持“<”
我可以这样做,但这会失去和np.unique(v.astype(str))
之间的区别。这是唯一的方法吗?3
"3"
解决方案
一种方法是为__lt__
数组中的所有对象定义。另一种不需要排序且仅依赖于相等运算符(仅适用于可清洗对象)的更简单方法是在 python 中使用 set:
np.array(list(set(v)))
输出:
array([1, 2, 3, None, '3', 'abc'], dtype=object)
推荐阅读
- ruby-on-rails - Rails、EC2、Nginx、Unicorn - 新资产不再在生产环境中渲染
- javascript - NodeJS 并发 SFTP 下载导致不同的文件长度
- javascript - 回调函数——如何知道参数内容是什么
- html - Freshdesk/Freshchat 的重音符号问题
- java - 应用于递归算法的动态规划
- url - 替换 URL 的多个部分
- entity-framework-core - 将 Service Fabric Actor 与实体框架持久性结合使用
- jquery - 通过用户的无线电输入重定向
- r - 使用R中的ddply中的summary返回某一列中的第n个单元格
- apache-spark - 在 U-SQL 和 Spark / Databricks 之间进行选择