给定两个numpy向量a
和b
,我想创建一个2D数组A
和A[i,j]=True
如果a[i]==b[j]
。我可以为循环执行以下操作。但是我想知道我是否可以不用for循环来更快地得到结果
def f(x, y):
d = np.zeros((len(x),len(y)))
for i in range(len(x)):
d[i, np.argwhere(y==x[i])]=1
return d
a = np.array([1,2,3,1,3,4])
b = np.array([1,1,2,2,2,3,4,5])
而{
array([[1., 1., 0., 0., 0., 0., 0., 0.],
[0., 0., 1., 1., 1., 0., 0., 0.],
[0., 0., 0., 0., 0., 1., 0., 0.],
[1., 1., 0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 1., 0., 0.],
[0., 0., 0., 0., 0., 0., 1., 0.]])
或与
where
一起:相关问题 更多 >
编程相关推荐