python - Python:获取 3D 数组中的唯一标签编号
问题描述
我有一个 3D 数组。每个 2D 切片都有标签编号,其编号可能介于 1 到 1800 之间。现在我想检查某些标签编号是否仅沿 z 轴出现一次。所以我的想法是遍历 3d 数组并使用 numpy.unique。但我想知道是否有更聪明的方法来获得这些独特的标签编号..
更新
这是我的一种方法,但我认为必须有更快的方法
import numpy as np
from collections import Counter
array = np.array([[[0,0,1],[1,2,4],[4,4,4]],[[5,5,1],[5,5,1],[4,4,4]],[[0,0,1],[2,2,4],[4,4,4]]])
uniqueNumbers=[]
for x in range(len(array)):
uniqueNumbers.extend(np.unique(array[x]).tolist())
cnt = Counter(uniqueNumbers)
ultimateUnique=([k for k, v in cnt.items() if v <= 1])
print(ultimateUnique)
输出:
[5]
所以在这种情况下,只有标签 5 出现在切片 2 中并且应该被识别。
解决方案
推荐阅读
- javascript - 使用 ajax 发送带有嵌套在列表中的文件的 json
- python - 有没有更好的方法在线程中运行 uvicorn?
- azure-lab-services - 用于 ALS 的电子邮件地址是什么?
- c - pthread_mutex_t 在结构中并在访问时锁定结构
- pyspark - 数据帧列中动态长度的 Pyspark 字符串数组到 onehot 编码
- javascript - 我想默认设置当前日期和时间并显示在输入字段中
- google-sheets - 比较 2 组的属性
- winappdriver - WinAppDriver 无法在打开文件对话框中找到打开按钮
- postgresql - postgresql中没有oracle序列的等价物是什么?
- c# - 无法加载 DLL 'wpcap.dll'。未找到指定的模块