【发布时间】:2020-11-26 22:28:37
【问题描述】:
当给定一个包含从 0 到 K 的元素的 N x K 矩阵时,是否有一种高效的方式来创建以下矩阵:
#0 | #2 | ... | #K
-------------------------
Row 1 x | y | ... | z
-------------------------
Row 2 a | b | ... | d
-------------------------
...
-------------------------
Row N g | h | ... | j
例如,单元格 1,2 中的位置应该是第一行中 2s 的数量。
我知道,一个相当低效的方法是使用两个 for 循环来执行此操作,但我想知道这是否也可以通过一些矩阵/NumPy 操作来解决。
干杯
编辑: 一些代码可能如下所示:
x_mod = np.zeros((N,I))
for n in range(N):
for i in range(I):
x_mod[n][int(X[n][i])] += 1
其中 X 是原始矩阵,x_mod 是新矩阵。
所以
X = 2 3 4 4 0
0 1 3 3 2
1 1 4 2 2
想要的结果如下:
1 0 1 1 2
1 1 1 2 0
0 2 2 0 1
【问题讨论】:
-
您能否包含一个带有两个 for 循环的示例,以便您的意图/规则清晰?
N=3、K=5的预期结果是什么?