假设我有一个这样的列列表:
res = [[2],[3, 4],[0],[5]]
然后,我需要将zr
零矩阵4X 4更改为上面res
列表中的1;举例来说:第一行在列2中绘制1,第二行在列3和4中绘制1,第三行由于[0]而没有绘制,第四行在列5中绘制1。
zr = np.array([[0, 0, 0, 0, 0, 0,],
[0, 0, 0, 0, 0, 0,],
[0, 0, 0, 0, 0, 0,],
[0, 0, 0, 0, 0, 0 ]]
目标:
zr = np.array([[0, 1, 0, 0, 0, 0,],
[0, 0, 1, 1, 0, 0,],
[0, 0, 0, 0, 0, 0,],
[0, 0, 0, 0, 1, 0 ]]
当res中的某些成员等于[0]时,我当前的编码发生了错误的变化:
for i, x in enumerate (res):
if x==0:
continue
else:
for j in x:
zr[i][j-1] = 1
你有什么建议吗?谢谢
2条答案
按热度按时间dsekswqp1#
这就是你要做的如果它发现[0]是一个内部列表,它将跳过该行。
输出量:
你做错了什么是你试图比较x(这是一个列表)与0。这总是假的。
a11xaf1n2#
您可以从
numpy
尝试put
,例如,你会看到