1 在由另一个 numpy 数组给出的特定列索引处的全零 numpy 数组的每一行中
1 in each row of an all zeros numpy array at particular column index given by another numpy array
我有一个给定大小的数组,例如全为零的 4x4,
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
给定大小 (mx1)
.
的大数组 (mxn)
如何执行此操作
谢谢您,并致以最诚挚的问候,
使用 zip()
:
遍历 a
中的行和 b
中的值
for row, idx in zip(a, b):
row[idx] = 1
您可以使用这种索引二维数组的简单方法:
>>> a[np.arange(len(a)), b] = 1
>>> a
array([[1., 0., 0., 0.],
[0., 1., 0., 0.],
[0., 0., 1., 0.],
[0., 1., 0., 0.]])
我有一个给定大小的数组,例如全为零的 4x4,
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
给定大小 (mx1)
.
(mxn)
如何执行此操作
谢谢您,并致以最诚挚的问候,
使用 zip()
:
a
中的行和 b
中的值
for row, idx in zip(a, b):
row[idx] = 1
您可以使用这种索引二维数组的简单方法:
>>> a[np.arange(len(a)), b] = 1
>>> a
array([[1., 0., 0., 0.],
[0., 1., 0., 0.],
[0., 0., 1., 0.],
[0., 1., 0., 0.]])