Python:矩阵到有序形式的转换

2024-04-26 10:40:48 发布

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

我对Python还不熟悉。我在Python中有一个矩阵,如下所示:

4 4 4 4 1
4 4 4 4 1
1 1 1 1 7

我想把它转换成矩阵,如下所示:

    1   2   3   4   5   6   7
1   1   0   0   4   0   0   0
2   1   0   0   4   0   0   0
3   4   0   0   0   0   0   1

新矩阵的列数是原始矩阵中的最大列数。行数与实际矩阵中的行数相同。新矩阵中的值是每个项的出现次数。你知道吗

例如:1在原始矩阵的第三行中出现了4次,因此我们的新矩阵在[3][1]中的值为4,依此类推。你知道吗

我如何转换这个?提前谢谢!你知道吗


Tags: 矩阵次数列数
2条回答

试试这个

a=[[4,4,4,4,1],[4,4,4,4,1],[1,1,1,1,7]]
m =0
for row in a:
   m = max([max(row),m])
b =[]
for row in a:
   r =[]
   i= 1 #set to zero if 0 is included
   while i<=m:
      c = row.count(i)
      r.append(c) 
      i +=1 
   b.append(r)
print b
import numpy as np

old_matrix = np.array([[4, 4, 4, 4, 1],
                       [4, 4, 4, 4, 1],
                       [1, 1, 1, 1, 7]])

new_matrix = np.vstack([np.bincount(row, minlength=old_matrix.max() + 1) for row in old_matrix])

相关问题 更多 >