我是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提前!
答案 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