在python中将numpy矩阵类型转换为字符串

在python中将numpy矩阵类型转换为字符串,python,matrix,numpy,counter,typecasting-operator,Python,Matrix,Numpy,Counter,Typecasting Operator,我有一个浮点型的m*n numpy矩阵。我将使用计数器函数(来自集合)来推导某些矩阵元素组合的计数。在实验中,我发现Counter()需要字符串值项进行迭代,而我的numpy矩阵默认为浮点类型 在声明零的numpy矩阵时使用dtype没有帮助 因此,我考虑将numpymatrix的每个元素转换为字符串。但是,它不起作用。我该怎么做?不清楚您到底想做什么,但您可能更适合使用(或可能使用)基于numpy数组导出计数 但如果你必须: In [45]: a = np.random.normal(size

我有一个浮点型的m*n numpy矩阵。我将使用计数器函数(来自集合)来推导某些矩阵元素组合的计数。在实验中,我发现Counter()需要字符串值项进行迭代,而我的numpy矩阵默认为浮点类型

在声明零的numpy矩阵时使用dtype没有帮助


因此,我考虑将numpymatrix的每个元素转换为字符串。但是,它不起作用。我该怎么做?

不清楚您到底想做什么,但您可能更适合使用(或可能使用)基于numpy数组导出计数

但如果你必须:

In [45]: a = np.random.normal(size=(3,3))

In [46]: a
Out[46]: 
array([[ 0.64552723, -0.4329958 , -1.84342512],
       [ 0.83197804, -0.03053034,  0.22560254],
       [ 0.61356459, -1.60778048, -1.51859134]])

In [47]: a.astype('|S8')
Out[47]: 
array([['0.645527', '-0.43299', '-1.84342'],
       ['0.831978', '-0.03053', '0.225602'],
       ['0.613564', '-1.60778', '-1.51859']], 
      dtype='|S8')
结果:

>>> xx
matrix([[ 1.2,  3.4],
        [ 5.4,  6.7],
        [ 9.8,  5.2]])
>>> zz
matrix([['1.2', '3.4'],
        ['5.4', '6.7'],
        ['9.8', '5.2']], 
       dtype='|S3')
>>> xx
matrix([[ 1.2,  3.4],
        [ 5.4,  6.7],
        [ 9.8,  5.2]])
>>> zz
matrix([['1.2', '3.4'],
        ['5.4', '6.7'],
        ['9.8', '5.2']], 
       dtype='|S3')