我想有条件地填充给定列表的numpy数组。
遍历 <unmarshal id="_FileParsing">
<bindy
classType="com.openmzn.ktds.dao.volte.input.VoLTEBody"
locale="korea" type="Fixed"/>
</unmarshal>
<to id="_validateParsing" uri="language:javascript:classpath:spring/rules/volte/volte.js"/>
<multicast id="_FileDistributor" parallelProcessing="false">
<toD id="_ProcessNRat" uri="direct:NRAT"/>
<toD id="_ProcessDrop" uri="direct:DROP"/>
</multicast>
numpy数组的每个元素并查找 var bodyList = exchange.in.getBody(ArrayList.class);
if(!CollectionUtils.isEmpty(bodyList)) {
for (total_count = 0; total_count < bodyList.size(); total_count++) {
uBody = bodyList[total_count];
enriched = enrich(uBody);
result = validate(enriched);
resultList.add(result);
...
}
function enrich(uBody) {
...
}
function validate(enriched) {
...
}
来查看它是否具有对值,例如1具有对值35。然后,将1更改为35 my_list
。
dup_list
理想的结果my_list
:
my_list = np.array([1, 2, 3, 4])
dup_list = [[1, 35], [4, 31]]
我下面的代码没有任何改变...
my_list
答案 0 :(得分:0)
我认为这就是您想要做的:
import numpy as np
my_list = np.array([1, 2, 3, 4])
dup_list = [[1, 35], [4, 31]]
for dup in dup_list:
my_list[np.where(my_list==dup[0])] = dup[1]
print(my_list)
结果:
[35 2 3 31]
答案 1 :(得分:0)
您可以尝试numpy.vectorize
方法。但是,这要求您首先将重复的列表放入字典形式,并包含2和3的字典键。
import numpy as np
my_list = np.array([1, 2, 3, 4])
dup_list = {1: 35, 4: 31 , 2:2, 3:3}
print(np.vectorize(dup_list.get)(my_list))
您可以在np.vectorize
阅读更多内容