对于基于numpy的解决方案,您可以使用
numpy.where,然后从中获取行索引,然后将其用于为矩阵建立索引。范例-
matrix[np.where((1 <= matrix[:,0]) & (matrix[:,0] <= 6) & (2 <= matrix[:,1]) & (matrix[:,1] <= 7))]
演示-
In [169]: matrixOut[169]:array([[ 1., 2., 3., 4., 5.], [ 6., 7., 8., 9., 10.], [ 11., 12., 13., 14., 15.], [ 16., 17., 18., 19., 20.]])In [170]: matrix[np.where((1 <= matrix[:,0]) & (matrix[:,0] <= 6) .....: & (2 <= matrix[:,1]) & (matrix[:,1] <= 7))]Out[170]:array([[ 1., 2., 3., 4., 5.], [ 6., 7., 8., 9., 10.]])
如注释中所示,另一种方法是使用布尔掩码,例如-
mask = ((1 <= matrix[:,0]) & (matrix[:,0] <= 6)& (2 <= matrix[:,1]) & (matrix[:,1] <= 7))matrix[mask,:]
演示-
In [41]: matrixOut[41]:array([[ 1., 2., 3., 4., 5.], [ 6., 7., 8., 9., 10.], [ 11., 12., 13., 14., 15.], [ 16., 17., 18., 19., 20.]])In [42]: mask = ((1 <= matrix[:,0]) & (matrix[:,0] <= 6) ....: & (2 <= matrix[:,1]) & (matrix[:,1] <= 7))In [43]:In [43]: matrix[mask,:]Out[43]:array([[ 1., 2., 3., 4., 5.], [ 6., 7., 8., 9., 10.]])
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)