[英]Get array row and column number according to values in python
例如,我有一个像这样的5*5 np.array
:
a=[[1,2,3,4,5],
[6,7,8,9,10],
[11,12,13,14,15],
[16,17,18,19,20],
[21,22,23,24,25]]
如果我想获得number<=15
的行和列的范围,我该怎么做?
相反,如果我知道行和列的范围,比如i
在xrange(1,4)
和j
在xrange(1,4)
,我怎么能得到这样的数字:
[[7,8,9],
[12,13,14],
[17,18,19]]
要根据条件获取范围,可以直接应用条件,也可以使用np.where
:
>>> a
array([[ 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10],
[11, 12, 13, 14, 15],
[16, 17, 18, 19, 20],
[21, 22, 23, 24, 25]])
>>> a < 15
array([[ True, True, True, True, True],
[ True, True, True, True, True],
[ True, True, True, True, False],
[False, False, False, False, False],
[False, False, False, False, False]], dtype=bool)
>>> np.where(a < 15)
(array([0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2]),
array([0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3]))
在后一种情况下,返回值是匹配索引的元组。
要实现相反的操作,您可以简单地切割数组:
>>> ar[1:4, 1:4]
array([[ 7, 8, 9],
[12, 13, 14],
[17, 18, 19]])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.