gpt4 book ai didi

python - 映射两个 numpy 数组

转载 作者:太空狗 更新时间:2023-10-30 02:29:16 28 4
gpt4 key购买 nike

我有两个 numpy 数组 A 和 B。

A = np.array ([[ 1  3] [ 2  3]  [ 2  1] ])

B = np.array([(1, 'Alpha'), (2, 'Beta'), (3, 'Gamma')]

我怎样才能将 A 映射到 B 以获得如下内容:

result = np.array ([[ 'Alpha'  'Gamma'] [ 'Beta'  'Gamma']  ['Beta'  'Alpha'] ])

我已经尝试了 map(B['f1'],A) 但我得到了 TypeError: 'numpy.ndarray' object is not callable

最佳答案

这是一个 NumPythonic 向量化方法 -

B[:,1][(A == B[:,0].astype(int)[:,None,None]).argmax(0)]

在一般情况下运行示例 -

In [118]: A
Out[118]:
array([[4, 3],
[2, 3],
[2, 4]])

In [119]: B
Out[119]:
array([['3', 'Alpha'],
['4', 'Beta'],
['2', 'Gamma']],
dtype='|S5')

In [120]: B[:,1][(A == B[:,0].astype(int)[:,None,None]).argmax(0)]
Out[120]:
array([['Beta', 'Alpha'],
['Gamma', 'Alpha'],
['Gamma', 'Beta']],
dtype='|S5')

关于python - 映射两个 numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33168871/

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