python - 创建numpy数组以仅包含其中列表的唯一元素的方法
问题描述
我有一个 numpy 数组 A ,它看起来像这样:
array([list(['nan', 'nan']),
list(['nan', 'nan', 'apple', 'apple', 'banana', 'nan', 'nan']),
list(['red', 'red']), ...,
list(['nan', 'festival'])], dtype=object)
我想将其转换为每个列表仅包含唯一元素的数组。例如,我希望将上面的数组转换为:
['nan'],['nan','apple','banana'],['red'],...,['nan','festival']
我试过这样做:
output = []
for i in A:
output.append(np.unique(i))
output
我不需要这样做的输出,目前看起来像这样:
[array(['nan'], dtype='<U3'),
array(['nan'], dtype='<U3'),
array(['nan'], dtype='<U3'),....]
可以做什么?
解决方案
arr=np.array([list(['nan', 'nan']),
list(['nan', 'nan', 'apple', 'apple', 'banana', 'nan', 'nan']),
list(['red', 'red']), ...,
list(['nan', 'festival'])], dtype=object)
通过列表理解尝试:
out=[np.unique(x).tolist() for x in arr]
或者
out=[list(np.unique(x)) for x in arr]
输出out
:
[['nan'], ['apple', 'banana', 'nan'], ['red'], [Ellipsis], ['festival', 'nan']]
推荐阅读
- typescript - 如何正确输入 fp-ts ObservableEither#fold?
- java - java null 手动异常处理
- github-actions - 如何获取 GitHub 操作工作流的总构建时间?
- postgresql - Postgresql 按列分区,没有主键
- http-live-streaming - Video.js HLS 选择质量低于预期的 TS 片段
- sql - @timestamp 的 Elasticsearch SQL 过滤不起作用
- python - Pip 安装 32 位包而不是 64 位
- java - 如何解决 Java 中的 switch case 错误?
- python - 无法导入 spacy
- javascript - 在 javascript 中以 200 毫秒的时间步长插值坐标