使用 numpy 中的指示向量从 2 个矩阵中选择行
selecting rows from 2 matrices using an indicator vector in numpy
假设我有一个向量:
f = np.array([1,1,0,0]) #(4,)
和 2 个矩阵:
m1 = np.array([[1,2],[3,4],[5,6],[7,8]]) #(4,2)
m2 = np.array([[10,20],[30,40],[50,60],[70,80]]) #(4,2)
我如何创建一个新矩阵 m3
从 m1 中选择行,其中 f == 1,否则从 m2 中选择行?
我希望 m3 是:
>>> m3
array([[ 1, 2],
[ 3, 4],
[50, 60],
[70, 80]])
我该如何实现?更喜欢我也可以在 theano 中使用的解决方案。
我不知道 Theano,但对于 numpy:
np.where(f[:, None], m1, m2)
假设我有一个向量:
f = np.array([1,1,0,0]) #(4,)
和 2 个矩阵:
m1 = np.array([[1,2],[3,4],[5,6],[7,8]]) #(4,2)
m2 = np.array([[10,20],[30,40],[50,60],[70,80]]) #(4,2)
我如何创建一个新矩阵 m3
从 m1 中选择行,其中 f == 1,否则从 m2 中选择行?
我希望 m3 是:
>>> m3
array([[ 1, 2],
[ 3, 4],
[50, 60],
[70, 80]])
我该如何实现?更喜欢我也可以在 theano 中使用的解决方案。
我不知道 Theano,但对于 numpy:
np.where(f[:, None], m1, m2)