gpt4 book ai didi

string - 如何根据 Mathematica 中的部分字符串匹配进行选择

转载 作者:行者123 更新时间:2023-12-05 00:01:48 26 4
gpt4 key购买 nike

假设我有一个看起来像这样的矩阵:

{{foobar, 77},{faabar, 81},{foobur, 22},{faabaa, 8},
{faabian, 88},{foobar, 27}, {fiijii, 52}}

和一个这样的列表:
{foo, faa}

现在我想根据列表中字符串的部分匹配将矩阵中每一行的数字相加,以便我最终得到:
{{foo, 126},{faa, 177}}

我假设我需要映射一个 Select 命令,但我不太确定如何做到这一点并且只匹配部分字符串。有谁能够帮助我?现在我的真实矩阵大约有 150 万行,所以不太慢的东西会有附加值。

最佳答案

这是一个起点:

data={{"foobar",77},{"faabar",81},{"foobur",22},{"faabaa",8},{"faabian",88},{"foobar",27},{"fiijii",52}};

{str,vals}=Transpose[data];
vals=Developer`ToPackedArray[vals];
findValPos[str_List,strPat_String]:=
Flatten[Developer`ToPackedArray[
Position[StringPosition[str,strPat],Except[{}],{1},Heads->False]]]

Total[vals[[findValPos[str,"faa"]]]]

关于string - 如何根据 Mathematica 中的部分字符串匹配进行选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8817863/

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