问题描述
a = np.zeros((4,4))
我想在另一行给定的列索引的每一行中放入1
b = np.array([0,1,2,1])
所以结果数组应该像这样
a =
1 0 0 0
0 1 0 0
0 0 1 0
0 1 0 0
在给定大小为(mxn)
的b的情况下,如何对大小为(mx1)
的大型数组执行此操作。
感谢您和最诚挚的问候,
解决方法
您可以使用以下简单的方法为2D数组建立索引:
>>> a[np.arange(len(a)),b] = 1
>>> a
array([[1.,0.,0.],[0.,1.,0.]])
,
使用a
遍历b
中的行和zip()
中的值:
for row,idx in zip(a,b):
row[idx] = 1