numpy 向量化合并python数组

oxosxuxt  于 2023-06-23  发布在  Python
关注(0)|答案(1)|浏览(95)

假设你有一个3x3的数组x,如下所示:

>>> xarr
array([[0., 0., 0.],
       [0., 0., 0.],
       [1., 1., 1.]])

类似地,y数组如下:

>>> yarr
array([[1., 0., 0.],
       [1., 0., 0.],
       [1., 0., 0.]])

问题是有没有一种方法可以合并(或以任何向量化的方式使用)xarr和yarr,以获得如下结果数组:

>>> result
array([[1., 0., 0.],
       [0., 1., 0.],
       [0., 0., 1.]])

这个想法是在不使用循环的情况下获得结果数组,当然也没有numpy.diag或numpy.eye等。

omjgkv6w

omjgkv6w1#

这是一种方法。

import numpy as np

x =np.array([[0, 0, 0],
       [0., 0., 0.],
       [1., 1., 1.]])
y = np.array([[1., 0., 0.],
       [1., 0., 0.],
       [1., 0., 0.]])
c = np.zeros_like(x)
x = x.nonzero()[1]
y = y.nonzero()[0]

c[x,y] = 1
print(c)

相关问题