我有一个 NumPy 数组,我将它转换成一个名为 string_matrix 的矩阵,其中每个元素都是一个字符串。
现在我想将 string_matrix 中的每个元素转换为字母。矩阵中的数字是列表 alp 的索引。
所以我想要这个输出:string_matrix = [['l' 'i' 'a']['a' 'f' 'b']['u' 'e' 'k']]
alp = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z",""]
matrix = numpy.array([[11, 8, 0],[0, 5, 1],[20, 4, 10]])
string_matrix = numpy.array(["%.f" % v for v in matrix.reshape(matrix.size)])
string_matrix = string_matrix.reshape(matrix.shape)
最佳答案
您可以使用您的矩阵
索引到alp
列表,您需要先将alp
设为一个numpy数组:
numpy.array(alp)[matrix]
输出:
array([['l', 'i', 'a'],
['a', 'f', 'b'],
['u', 'e', 'k']], dtype='<U1')
这使用了 numpy 的高级索引。您可以找到更多详细信息 here如果您想阅读它。
关于python - 用 NumPy 中的列表元素替换数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53460852/