当前位置: 首页 > 面试题库 >

python中复杂的类似matlab的数据结构(numpy / scipy)

郭俊人
2023-03-14
问题内容

我在Matlab中目前具有以下结构的数据

item{i}.attribute1(2,j)

其中item是来自i = 1 .. n的单元格,每个单元格包含多个属性的数据结构,每个属性均具有大小为2,j的矩阵,其中j = 1 ..
m。属性的数量不是固定的。

我必须将此数据结构转换为python,但是我对numpy和python列表并不陌生。用numpy / scipy在python中构造此数据的最佳方法是什么?

谢谢。


问题答案:

我经常看到以下转换方法:

Matlab数组-> python numpy数组

Matlab单元格数组-> python列表

Matlab结构-> python字典

因此,在您的情况下,这将对应于包含字典的python列表,而字典本身包含numpy数组作为条目

item[i]['attribute1'][2,j]

注意

不要忘记python中的0索引!

[更新]

附加:类的使用

除了上面给出的简单转换,您还可以定义一个虚拟类,例如

class structtype():
    pass

这允许以下类型的用法:

>> s1 = structtype()
>> print s1.a
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-40-7734865fddd4> in <module>()
----> 1 print s1.a
AttributeError: structtype instance has no attribute 'a'
>> s1.a=10
>> print s1.a
10

在这种情况下,您的示例变为

>> item = [ structtype() for i in range(10)]
>> item[9].a = numpy.array([1,2,3])
>> item[9].a[1]
2


 类似资料:
  • 问题内容: 可以说我有一个散列,例如 存储这种数据结构的“通常”方式是什么(或者您不会吗?) 您是否可以直接获得价值(例如,获取哈利:年龄? 一旦存储,您是否可以直接更改子键的值(例如,sally:weight = 100) 问题答案: 存储这种数据结构的“通常”方式是什么(或者您不会吗?) 例如,哈利(Harry)和莎莉(Sally)将分别存储在单独的散列中,其中字段代表其属性,例如年龄和体重。

  • 本文向大家介绍数据结构中的时空复杂性,包括了数据结构中的时空复杂性的使用技巧和注意事项,需要的朋友参考一下 算法分析 可以在实施之前和实施之后的两个不同阶段进行算法效率分析,如下 先验分析-这被定义为算法的理论分析。通过假设所有其他因素(例如处理器速度)是恒定的,并且对实现没有影响,来衡量算法的效率。 后验分析-定义为算法的经验分析。所选算法是使用编程语言实现的。接下来,所选算法在目标计算机上执行

  • 问题内容: 我是Java的新手,我试图找到一种方法来在C语言中存储诸如结构之类的信息。例如,说我想让一名程序雇用员工。它将从用户那里获得一个名字,姓氏和ID号并将其存储起来。然后,用户可以根据条件查看该信息(例如,如果数据库有多于1名员工)。有没有人建议这样做的最佳方法? 问题答案: C中的结构就像Java中的类一样,功能更强大,因为Java中的类可以包含方法,而C ++可以。您创建一个新类。例如

  • 我使用了下面的函数,它获取成员的登录日期和合同长度,并返回一个修改后的数据框,其中包含每个成员的到期日期。该函数按预期工作,但我想知道是否有更干净的方法来编写嵌套函数。我知道python没有实现,但是有没有办法重写所有语句?

  • 我使用Python的模块来检查两个复杂的数据结构是否相等。对象可以是具有各种值的dict列表:数字、字符串、Python容器(列表/元组/dict)和数组。后者是我提出这个问题的原因,因为我不能只是这样做 因为它会产生 我想我需要为这个写我自己的平等测试。它应该适用于任意结构。我目前的想法是递归函数: 尝试将的当前“节点”与的对应节点进行直接比较 如果未引发异常,则继续移动(“终端”节点/叶也在此

  • 问题内容: 民间, 我连续第n次遇到相同的老问题。这是关于“如何轻松地将OOP结构映射到数据库表”。 这是一个场景:系统中有几种类型的“角色”-工人,雇主,联系人。它们具有某些共同的功能。其他部分则大不相同。所有参与者所处理的实体是“交流”,“注释”(管理员喜欢在客户身上留下注释)等。每种角色类型都处理大量其他类型的实体,而其他类型则不。 当前,我的数据库模式包括以下表: 演员: 工人 雇主 联系