Python 访问另一列标题中的列

Python 访问另一列标题中的列,python,matlab,numpy,Python,Matlab,Numpy,我用python打开了一个.mat文件。我可以看到CloudData中有一个名为“CloudData”的主列,有两个列“Points”和“RGB”。我可以通过以下方式访问“点”列: points_data=(data['CloudData']['Points'][0:1]) 其中data是使用scipy.io在python中读取的文件名。但当我尝试读取RGB内的数据值时,如下所示: channel_data=(data['RGB']['data_values']) 我收到错误的抱怨: Ke

我用python打开了一个.mat文件。我可以看到CloudData中有一个名为“CloudData”的主列,有两个列“Points”和“RGB”。我可以通过以下方式访问“点”列:

points_data=(data['CloudData']['Points'][0:1])
其中data是使用scipy.io在python中读取的文件名。但当我尝试读取RGB内的数据值时,如下所示:

channel_data=(data['RGB']['data_values']) 
我收到错误的抱怨: KeyError:“RGB”

在python中打开.mat文件后需要考虑什么? 实际上,在Matlab中,变量data_值以CloudData.RGB.data_值作为标题显示在变量查看器窗口中


对于第一步,我想读取RGB头中的值,它位于CloudData中

从您所写的内容来看,我认为您应该使用


取决于.mat文件在matlab中的构造方式。

但它确实适用于点?所以你的描述有错误。请用最少的工作示例或至少足够的信息更新您的描述,以了解mat文件的结构。抱歉,我错过了完整的细节。第一种方法有效,但第二种方法显示如下错误:索引器:只有整数、切片:、省略号…、numpy.newaxis None和整数或布尔数组是有效的指示符是的,这是因为RGB中很可能没有子目录,因此,您尝试使用索引数据_值对ndarray或存储在RGB中的任何类型进行索引,这对于np.ndarray是无效的索引。但这只是猜测,因为提供的信息非常稀少。如果第一种方法有效,我会感谢被标记为正确答案。我认为这是合理的理由。但是如何将RGB转换为dict,或者如何从RGB访问数据_值。因为我看到CloudData是字典的主键,Points和RGB是值。但是RGB还有两个字段“name”,类型为string,我猜不需要,数据值类型为“354*1 single”,由matlab显示。typedata['CloudData']['RGB']的输出是什么?如果它是np.ndarray,则它是一个numpy数组,您可以通过切片来访问这些值。如果是dict,请尝试data['CloudData']['RGB'].keys以查看dict中包含哪些键,然后尝试data['CloudData']['RGB'].items以查看数据存储在哪个键下。顺便说一句因为你有15个声望,你才赢得了投票权。你为什么不接受我的回答?就因为我告诉过你要查看numpy文档以获取关于如何处理np.ndarray的更多信息?我解决了你访问RGB的问题。这就是你要求的。您可以提出一个关于如何访问存储在阵列中的数据的新问题。但是撤回被接受的答案不应该和问另一个问题联系起来……那么你为什么又不接受我的答案呢?这仍然是你问题的解决方案,如果你的问题改变了,我不能改变它。你真的应该问一个新问题,而不是撤回已接受的答案。
channel_data = (data['CloudData']['RGB'][0:1])
channel_data = (data['CloudData']['RGB']['data_values'][0:1])