【问题标题】:Tuple and numpy arrays in pythonpython中的元组和numpy数组
【发布时间】:2021-03-16 14:01:57
【问题描述】:

我有一个字典列表,每个字典都由字符串数组和浮点数组成,如下所示:

Product1 = {
 'Name': 'TLSK',
 'Name2': 'B1940',
 'Tagid': '23456222',
 'Cord': np.array(['09:42:23', '9', '-55:52:32',  '9']),
 'Cord2': np.array([432.34, 222.115]),
 'Ref': 'Siegman corp. 234',
 'Exp': 22.0,
 'CX': np.array([0.00430, 0.00069, 0.00094])
}

我有时需要访问 Dictionary 的某些元素以进行进一步计算。我要做的是首先将它们合并如下:

Products = (Product1, Product2, Product3, ....)

然后我使用for循环来存储每个字典的某个元素如下

Expall=[]
for i in Products:
    exp = i['Exp']
    Expall.append(exp)

对我来说,这似乎是一种低效/糟糕的编码,我想知道是否有更好的方法来做到这一点。我来自 IDL 语言,例如,在 IDL 中,您可以在没有 for loop 这样的情况下访问该信息。 Expall = Products[*]['Exp']

大多数时候,我什至必须先存储数据,然后我使用pickle in Python 来做到这一点。由于我对 python 有点陌生,而且我很少听到关于 pandas 等的好消息,所以我想看看是否有更有效/更快的方法来处理所有这些东西。

【问题讨论】:

  • 第一个对象是字典,不是元组
  • Python 中没有用于循环元组并从元素 dict 中获取值的超级语法(理解除外)。您可以自己编写,或者如果这会冒犯您的“秩序”感,请将操作隐藏在函数中。 numpy 具有适用于“整个”数组的快速方法,但这仅适用于数字元素。 (不是字典数组)。
  • 您真的是从一个字典列表开始,将它们命名为product1 等,然后将它们收集到tuple 中吗?还是Products 那个列表? pickle 是怎么回事?是那种将列表转移到 IDL 的方式吗?

标签: python python-3.x numpy tuples pickle


【解决方案1】:

以下可能有效(列表理解):

如果你已经分离了产品i,

[product['Exp'] for product in [Product1, Product2]]

如果您有产品

[product['Exp'] for product in Products]

【讨论】:

  • 亲爱的朋友。您只需更改语法即可回答上述问题中提到的解决方案。我认为打开这个主题的朋友正在寻找不同的方式。
猜你喜欢
  • 2011-05-12
  • 2021-11-24
  • 1970-01-01
  • 1970-01-01
  • 2018-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多