gpt4 book ai didi

python - 零维 numpy.ndarray : only element is a 2D array : how to access it?

转载 作者:行者123 更新时间:2023-12-03 22:15:30 24 4
gpt4 key购买 nike

我已经使用 scipy.io 导入了一个 Matlab *.mat 文件并尝试从中提取二维数据。里面有几个数组,当我试图获取它们时,我在最后一个操作中卡住了。

数据如下图所示。当我尝试对其进行索引时:IndexError:数组索引太多

我用谷歌搜索到它看起来像一个单值元组,其中唯一的元素是我的数组。这原则上必须是可索引的,但它不起作用。类型(数据)返回

所以问题是:如何从这个数据结构中获取我的二维数组?

    data[0] # Doesn't work.

array in question

最佳答案

搜索 loadmat应该会产生许多 SO 问题,这些问题将帮助您区分这个结果。 loadmat必须将 MATLAB 对象转换为 Python/numpy 近似值。

data = io.loadmat(filename)

应该生成一个带有一些封面键和各种数据键的字典。 list(data.keys())来识别那些。
x = data['x']

应该匹配 x MATLAB 工作区中的变量。它可以是一个二维的 F 阶数组,对应于一个 MATLAB 矩阵。

它可以是 (n,m) 对象 dtype 数组,对应于 MATLAB 单元格。

它可以是结构化数组,其中字段名称对应于 MATLAB struct属性。

在您的情况下,您似乎有一个 0d 对象 dtype 数组。形状是 () ,一个空元组(1d 具有 (n,) 形状,2d 具有 (n,m) 形状等)。您可以使用以下命令将元素从 () 数组中拉出:
 y[()]
y.item()
[()]看起来很奇怪,但这是合乎逻辑的。对于一维数组 y[1]可以写成 y[(1,)] .对于二维, y[1,2]y[(1,2)]是相同的。索引元组应与维数相匹配。因此一个 ()可以索引一个 () 形状的数组。

关于python - 零维 numpy.ndarray : only element is a 2D array : how to access it?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51149865/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com