Python:将矩阵转换为有序形式

时间:2017-03-30 13:21:22

标签: python matrix classification

我是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,依此类推。

我该怎么转换呢? Thx提前!

2 个答案:

答案 0 :(得分:0)

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])

答案 1 :(得分:0)

试试这个,

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