我想指定一个特定的数组(row,col),其值为1
这是我的代码:
fl = np.zeros((5, 3))
labels = np.random.random_integers(0, 2, (5, 1))
for i in range(5):
fl[i, labels[i]] = 1
这个过程有一些捷径吗?
答案 0 :(得分:1)
您可以将labels
数组用作布局数组,其中fl.shape
为形状。尝试:
import numpy as np
fl = np.zeros((5, 3))
labels = np.random.random_integers(0, 1, fl.shape).astype(bool)
fl[labels] = 1
以下是标签和结果中布尔值数组的样子:
>>> labels
array([[False, True, False],
[ True, True, False],
[False, True, True],
[ True, True, True],
[ True, False, False]], dtype=bool)
>>> fl
array([[ 0., 1., 0.],
[ 1., 1., 0.],
[ 0., 1., 1.],
[ 1., 1., 1.],
[ 1., 0., 0.]])
答案 1 :(得分:1)