我从矩阵A(100,40)生成了一个新的随机行矩阵B(50,40):
B = A[np.random.randint(0,100,size=50)] # it works fine.
现在,我想从A中获取不在矩阵B中的行。
C = A not in B # pseudocode.
答案 0 :(得分:1)
这应该做的工作:
import numpy as np
A=np.random.randint(5,size=[100,40])
l=np.random.choice(100, size=50, replace=False)
B = A[l]
C= A[np.setdiff1d(np.arange(0,100),l)]
l
存储所选行,而对于C
,您可以使用l
的补码。然后C
是必需的矩阵。
请注意,我设置了l=np.random.choice(100, size=50, replace=False)
以避免替换。如果您使用np.random.randint(0,100,size=50)
,则可能会重复行,因为随机选择了相同的数字。
答案 1 :(得分:0)
通过这个问题,Check whether each row of a matrix is in another matrix [Python]进行了解释。首先得到行的索引存在于B中,然后从整个A索引得到差异。最后使用差异选择行。
$("#closebutton").click(function () {
$('#megasubmenu').hide();
$('#megasubmenu').closest('li.level0').find('a.level0').removeClass("megahover");
});
答案 2 :(得分:0)
numpy_indexed包(免责声明:我是它的作者)为所有这些操作提供了高效的矢量化功能。
import numpy_indexed as npi
C = npi.difference(A, B)