luyanpingya 2023-12-20 21:26 采纳率: 100%
浏览 8
已结题

python 代码编写,根据字典对应数字替换矩阵相关值

a.shape      type(a)
-------------------------
(499, 20, 5)       numpy.ndarray
-----------------------------
a
----------------------------
[[[0.         0.55173373 0.4961181  0.2996214  0.48656133]
  [0.23692502 0.06158114 0.5125366  1.         0.5043167 ]
  [0.35129175 0.8108183  0.         0.7566252  0.09692132]
  ...
  [0.5        0.5        0.5        0.5        0.5       ]
  [0.5        0.5        0.5        0.5        0.5       ]
  [0.5        0.5        0.5        0.5        0.5       ]]

 [[0.         0.55173373 0.4961181  0.2996214  0.48656133]
  [0.23692502 0.06158114 0.5125366  1.         0.5043167 ]
  [0.41304347 0.51317614 0.88748884 0.8209843  0.7419775 ]
  ...
  [0.5        0.5        0.5        0.5        0.5       ]
  [0.5        0.5        0.5        0.5        0.5       ]
  [0.5        0.5        0.5        0.5        0.5       ]]

 [[0.         0.55173373 0.4961181  0.2996214  0.48656133]
  [0.23692502 0.06158114 0.5125366  1.         0.5043167 ]
  [0.35129175 0.8108183  0.         0.7566252  0.09692132]
  ...
  [0.10617518 0.2590846  0.8465063  0.46809086 0.59521097]
  [0.5        0.5        0.5        0.5        0.5       ]
  [0.5        0.5        0.5        0.5        0.5       ]]

 ...

 [[0.         0.55173373 0.4961181  0.2996214  0.48656133]
  [0.35129175 0.8108183  0.         0.7566252  0.09692132]
  [0.23692502 0.06158114 0.5125366  1.         0.5043167 ]
  ...
  [0.5        0.5        0.5        0.5        0.5       ]
  [0.5        0.5        0.5        0.5        0.5       ]
  [0.5        0.5        0.5        0.5        0.5       ]]

 [[0.         0.55173373 0.4961181  0.2996214  0.48656133]
  [0.23692502 0.06158114 0.5125366  1.         0.5043167 ]
  [0.35129175 0.8108183  0.         0.7566252  0.09692132]
  ...
  [0.5        0.5        0.5        0.5        0.5       ]
  [0.5        0.5        0.5        0.5        0.5       ]
  [0.5        0.5        0.5        0.5        0.5       ]]

 [[0.         0.55173373 0.4961181  0.2996214  0.48656133]
  [0.23692502 0.06158114 0.5125366  1.         0.5043167 ]
  [0.35129175 0.8108183  0.         0.7566252  0.09692132]
  ...
  [0.5        0.5        0.5        0.5        0.5       ]
  [0.5        0.5        0.5        0.5        0.5       ]
  [0.5        0.5        0.5        0.5        0.5       ]]]
---------

aa_vec={'A': array([[0.23692502, 0.06158114, 0.5125366 , 1.        , 0.5043167 ]],
       dtype=float32),
 'C': array([[0.        , 0.55173373, 0.4961181 , 0.2996214 , 0.48656133]],
       dtype=float32),
 'D': array([[0.75393826, 0.5065187 , 0.14051165, 0.50540835, 0.        ]],
       dtype=float32),
 'E': array([[0.85066164, 0.01969487, 0.7938144 , 0.6060032 , 0.3917576 ]],
       dtype=float32),
 'F': array([[0.10617518, 0.2590846 , 0.8465063 , 0.46809086, 0.59521097]],
       dtype=float32),
 'G': array([[0.3021424 , 0.8809986 , 0.775105  , 0.8580314 , 0.86431015]],
       dtype=float32),
 'H': array([[0.5289855 , 0.3070735 , 0.39289805, 0.17685235, 0.5153934 ]],
       dtype=float32),
 'I': array([[0.03276623, 0.27101249, 0.8770523 , 0.68171984, 0.6610197 ]],
       dtype=float32),
 'K': array([[1.        , 0.26712897, 0.6736668 , 0.50054085, 0.7965467 ]],
       dtype=float32),
 'L': array([[0.10207939, 0.14895977, 0.41428027, 0.9177934 , 0.37954065]],
       dtype=float32),
 'M': array([[0.2142407 , 0.        , 0.8882525 , 0.30367768, 0.7255253 ]],
       dtype=float32),
 'N': array([[0.72085696, 0.6524272 , 0.77115947, 0.5297458 , 0.6800782 ]],
       dtype=float32),
 'P': array([[0.4826717 , 1.        , 0.39862543, 0.68929154, 0.30135202]],
       dtype=float32),
 'Q': array([[0.7164461 , 0.37309292, 0.22336769, 0.43942672, 0.22625835]],
       dtype=float32),
 'R': array([[0.9076875, 0.4074896, 0.7969963, 0.6944294, 1.       ]],
       dtype=float32),
 'S': array([[0.35129175, 0.8108183 , 0.        , 0.7566252 , 0.09692132]],
       dtype=float32),
 'T': array([[0.41304347, 0.51317614, 0.88748884, 0.8209843 , 0.7419775 ]],
       dtype=float32),
 'V': array([[0.00189036, 0.34535366, 0.5365916 , 0.9113034 , 0.3225281 ]],
       dtype=float32),
 'W': array([[0.23566477, 0.42524272, 0.69135803, 0.        , 0.49812675]],
       dtype=float32),
 'Y': array([[0.50504094, 0.652982  , 1.        , 0.3488372 , 0.7743932 ]],
       dtype=float32),
 ' ': array([[0.5, 0.5, 0.5, 0.5, 0.5]], dtype=float32)}

如何根据aa_vec将三维矩阵 转换为由序列组成,即当a中的[0. 0.55173373 0.4961181 0.2996214 0.48656133]一行与aa_vec中字典C对应的值相同,则a中的这一行直接替换为C,以此类推,将所有数字替换为字母

  • 写回答

9条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-12-20 21:26
    关注
    import numpy as np
    
    a = np.array([[[0., 0.55173373, 0.4961181, 0.2996214, 0.48656133],
                   [0.23692502, 0.06158114, 0.5125366, 1., 0.5043167],
                   [0.35129175, 0.8108183, 0., 0.7566252, 0.09692132]],
                  [[0., 0.55173373, 0.4961181, 0.2996214, 0.48656133],
                   [0.23692502, 0.06158114, 0.5125366, 1., 0.5043167],
                   [0.41304347, 0.51317614, 0.88748884, 0.8209843, 0.7419775]]])
    
    aa_vec = {'A': np.array([[0.23692502, 0.06158114, 0.5125366, 1., 0.5043167]]),
              'C': np.array([[0., 0.55173373, 0.4961181, 0.2996214, 0.48656133]]),
              'D': np.array([[0.75393826, 0.5065187, 0.14051165, 0.50540835, 0.]]),
              'E': np.array([[0.85066164, 0.01969487, 0.7938144, 0.6060032, 0.3917576]]),
              'F': np.array([[0.10617518, 0.2590846, 0.8465063, 0.46809086, 0.59521097]]),
              'G': np.array([[0.3021424, 0.8809986, 0.775105, 0.8580314, 0.86431015]]),
              'H': np.array([[0.5289855, 0.3070735, 0.39289805, 0.17685235, 0.5153934]]),
              'I': np.array([[0.03276623, 0.27101249, 0.8770523, 0.68171984, 0.6610197]]),
              'K': np.array([[1., 0.26712897, 0.6736668, 0.50054085, 0.7965467]]),
              'L': np.array([[0.10207939, 0.14895977, 0.41428027, 0.9177934, 0.37954065]]),
              'M': np.array([[0.2142407, 0., 0.8882525, 0.30367768, 0.7255253]]),
              'N': np.array([[0.72085696, 0.6524272, 0.77115947, 0.5297458, 0.6800782]]),
              'P': np.array([[0.4826717, 1., 0.39862543, 0.68929154, 0.30135202]]),
              'Q': np.array([[0.7164461, 0.37309292, 0.22336769, 0.43942672, 0.22625835]]),
              'R': np.array([[0.9076875, 0.4074896, 0.7969963, 0.6944294, 1.]]),
              'S': np.array([[0.35129175, 0.8108183, 0., 0.7566252, 0.09692132]]),
              'T': np.array([[0.41304347, 0.51317614, 0.88748884, 0.8209843, 0.7419775]]),
              'V': np.array([[0.00189036, 0.34535366, 0.5365916, 0.9113034, 0.3225281]]),
              'W': np.array([[0.23566477, 0.42524272, 0.69135803, 0., 0.49812675]]),
              'Y': np.array([[0.50504094, 0.652982, 1., 0.3488372, 0.7743932]]),
              ' ': np.array([[0.5, 0.5, 0.5, 0.5, 0.5]])}
    
    
    result = []
    for row in a:
        res_row = []
        for element in row:
            for key, value in aa_vec.items():
                if np.all(element == value):
                    res_row.append([key])
                    break
        result.append(res_row)
    result = np.array(result, dtype=object)
    print(result)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(8条)

报告相同问题?

问题事件

  • 系统已结题 12月29日
  • 已采纳回答 12月21日
  • 创建了问题 12月20日

悬赏问题

  • ¥15 这个怎么改成直流激励源给加热电阻提供5a电流呀
  • ¥50 求解vmware的网络模式问题 别拿AI回答
  • ¥24 EFS加密后,在同一台电脑解密出错,证书界面找不到对应指纹的证书,未备份证书,求在原电脑解密的方法,可行即采纳
  • ¥15 springboot 3.0 实现Security 6.x版本集成
  • ¥15 PHP-8.1 镜像无法用dockerfile里的CMD命令启动 只能进入容器启动,如何解决?(操作系统-ubuntu)
  • ¥30 请帮我解决一下下面六个代码
  • ¥15 关于资源监视工具的e-care有知道的嘛
  • ¥35 MIMO天线稀疏阵列排布问题
  • ¥60 用visual studio编写程序,利用间接平差求解水准网
  • ¥15 Llama如何调用shell或者Python