【发布时间】:2019-01-26 18:47:36
【问题描述】:
我是 python 新手,我正在尝试通过将它们与它们的类类型匹配来索引一堆 pcd 文件(每个文件本质上是一个 n*3 数组)。某些文件是类 1、2、3 等等。当我尝试运行它时,我收到一个unhashable numpy.ndarrayerror。由于我有一排需要加载和索引的文件,我应该如何进行?
path= glob.glob("path/to/pcd/folder/*.pcd")
data_dict=dict()
for i in range(len(list(path):
currentPath = path[i]
classtype=currentPath[-5:]
classtype=classtype[0]
p = pcl.load(path[i])
a = np.asarray(p)
data_dict[a]=classtype
【问题讨论】:
-
一个问题是你有 dict 向后查找。在第三行你有
”Object”:a,也就是说键是对象,值是a。如果你想得到一个你应该做dict[“Object”]而不是dict[a] -
你应该查看字典documentation
-
嘿@K.Dackow,我尝试了您的解决方案,现在我的循环正在迭代,但它正在覆盖以前的数组。我希望在我的字典中建立的关系是:classtype。我应该以不同的方式声明吗?
-
a:classtype 是什么意思?现在 classtype 只是一个字符串,所以它实际上并不代表对象的类型,它实际上只是 classtype。但是,是的,如果您想通过字典将 a 映射到类类型,则在声明中切换它们的顺序
-
但是你的目标是什么?你能澄清你想让dict做什么吗?您是否希望输入数组中的每个元素都成为映射到其类类型的字典中的元素?
标签: python dictionary point-clouds