用NumPy中的列表元素替换数组元素

时间:2018-11-24 17:46:47

标签: python numpy matrix

我有一个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)

1 个答案:

答案 0 :(得分:1)

您可以使用alp索引到matrix列表中,首先需要将alp设为一个numpy数组:

numpy.array(alp)[matrix]

输出:

array([['l', 'i', 'a'],
       ['a', 'f', 'b'],
       ['u', 'e', 'k']], dtype='<U1')

这使用numpy的高级索引。如果您想阅读更多详细信息,here