首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tech_array和bio_array的顺序

tech_array和bio_array的顺序
EN

Stack Overflow用户
提问于 2017-04-25 20:22:53
回答 1查看 59关注 0票数 0

上下文:我在不同的ParameterVectorLCA中使用了projects,这些LCA可能是在不同的projects中生成的。我已经存储了生成的params。我想确保params的顺序是一样的。

据我所知:

  • 我知道这些参数数组的元素有两个字段,它们引用inputsoutputs
  • 我知道activity_dictbio_dict可以告诉我们这些inputsoutputs指的是什么
  • 我知道,通过使用各自的supply arraysbio_dict,可以将activity_dictbio_dict从一个项目重新排序到另一个项目。

我不知道的是:

  • 如果我的activity_dictbio_dict对于两个LCA都是相同的,那么我的params的顺序是否是相同的呢?
  • 如果我的activity_dictbio_dict不一样,我可以重新订购我的params吗?我的策略是:
  • 选择我的LCA之一作为“参考”
  • 对于其他LCA,将tech_paramsbio_params中的tech_paramsbio_params数字更改为参考LCA的数字(通过使用activity_dictbio_dict)。
  • 将索引属性设置为tech_parambio_param中每个参数的字符串表示形式。
  • 在我要重新排序的tech_parambio_param中找到相应的参数字符串表示的索引。
  • 使用重新索引重新排序。

这样能行吗?有更简单的方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-26 07:39:25

处理后时,项目中的参数数组总是按相同的顺序排序(您可以看到排序时使用的字段)。此外,数组连接到例如tech_params的顺序在一个项目中是相同的(数组是基于他们的文件名排序的)。最后,activity_dict等的构造方式也保证了始终如一。但是,正如您所说的,inputoutput值在不同的项目之间可能完全不同。

  • 如果我的activity_dict和bio_dict对于两个LCA都是相同的,那么我能保证我的params的顺序是相同的吗?

是。

  • 如果我的activity_dict和bio_dict不一样,我可以重新排序我的参数吗?

更难对付。

  • 对于其他LCA,将tech_params和bio_params中的输入和输出编号更改为参考LCA的输入和输出编号(通过使用activity_dict和bio_dict)。

这不起作用,因为activity_dict从键到矩阵列;input中的值是mapping值。因此,您需要访问“映射”才能使用此策略。

到目前为止,最简单的方法是重新排序这两个param数组,忘记mapping值(每个项目可能有所不同),而是使用活动键(我假设它们是相同的)。然后,您可以轻松地按输入键、输出键、数量等对每个数组进行排序(请参阅dtype_fields_order;有相同的输入和输出的重复交换),并确信您得到了相同的订单。

这将是对实用程序库的一个很好的补充,但是一定要首先编写测试!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43620285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档