将带索引的numpy数组转换为字符串

2024-04-25 06:58:15 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我有这样一个数组np.array([0, 3, 2, 1]) 我有一个字符串'abcd',如何将它转换成"adcb" (numpy数组存储abcd字符串的索引)当前我使用此

def string(array, alphabet):
        string = ''
        for x in array:
            string += alphabet[x]
        return string

但这是非常缓慢的,因为我必须在整个阵列上循环,有更好(更快)的方法吗


Tags: 方法字符串innumpyforstringreturndef
3条回答

你可以试试列表理解

检查以下代码:

s_list = [alphabet[i] for i in array]
return "".join(s_list)

怎么样

import numpy as np
ss='abcd'
idx=np.asarray([0,3,2,1])
arr=np.asarray(list(ss))
ss2=arr[idx]
print(ss2)

我假设您想要一个numpy解决方案:

array = np.array([0, 3, 2, 1])
alphabet = 'abcd'
s_list = np.array(list(alphabet))
s_list[array]

输出:

array(['a', 'd', 'c', 'b'], dtype='<U1')

您只需要将alphabet转换为numpy数组

相关问题 更多 >