使用Numpy ndarray进行条件索引

使用Numpy ndarray进行条件索引,第1张

使用Numpy ndarray进行条件索引

对于基于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.]])


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5668101.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存