首页 > 解决方案 > 如何打印所有值都在一个数字之间的行数

问题描述

嗨所以我对python相当陌生,我试图从我创建的numpy数组中找到所有值都在0-50(包括两个数字)之间的行数。

array([[39, 42, 48, -5, -2, -2, 34,  4, 14, 16],
       [45, 31, 18,  1, 19, 19,  7, -4, 33, 34],
       [18, 41, 19, 12, 32, 20,  8,  3,  4, 15],
       [46, 11, 46,  0, 10, 42, -5, 13, 30, 19],
       [44, 46, 24, 14, 14,  9, 34, 27, -4,  4],
       [27, 26,  5, 47, 18, 30,  6, 45, 23, 29],
       [-5, -5, 31, 48,  0, 33, 35, 47, 12, 10],
       [-1, 36, 37, 26, -4, -4, 34, 36, 30, 33],
       [ 6, 41, 13, 22, -5,  9, 30, 48,  7, 37],
       [15,  6, -1,  1, -1, 42, 47, -2,  7, 31],
       [47, 35,  9, 10, 15, 30, 18, 10,  8, 48],
       [16, 43, 44,  0, 36, 30, -5, 26,  0, 25],
       [-5, 44, 45, 31, 29, 43, 24, -2, 29, 37],
       [ 8, 43, 34, 16,  4, -5,  5, 45, 38, 18],
       [-3, 29, 30, 25, -2, 13, 41, 30, 15, 12],
       [45, 22,  9, 36, -4, 31,  5, 17, 38, 35],
       [ 6, -3, 46, 11, 27, 49, -5, 33, 14, 41],
       [37, 46, 35,  8, 25, 19, -3, -2, 25, 29],
       [38,  8, 43, 35,  3, 14, 26,  3, 21, -3],
       [47, -2, 39,  9, 27, -1, -2, 40,  6, 17]])

我希望代码显示 3,因为数组中只有 3 行的所有值都在 0-50 之间。任何人都可以帮我这样做吗?

标签: pythonarraysnumpy

解决方案


您可以遍历每一行并检查值是否在数字之间,例如:

from numpy import array

matrix = array([[39, 42, 48, -5, -2, -2, 34,  4, 14, 16],
       [45, 31, 18,  1, 19, 19,  7, -4, 33, 34],
       [18, 41, 19, 12, 32, 20,  8,  3,  4, 15],
       [46, 11, 46,  0, 10, 42, -5, 13, 30, 19],
       [44, 46, 24, 14, 14,  9, 34, 27, -4,  4],
       [27, 26,  5, 47, 18, 30,  6, 45, 23, 29],
       [-5, -5, 31, 48,  0, 33, 35, 47, 12, 10],
       [-1, 36, 37, 26, -4, -4, 34, 36, 30, 33],
       [ 6, 41, 13, 22, -5,  9, 30, 48,  7, 37],
       [15,  6, -1,  1, -1, 42, 47, -2,  7, 31],
       [47, 35,  9, 10, 15, 30, 18, 10,  8, 48],
       [16, 43, 44,  0, 36, 30, -5, 26,  0, 25],
       [-5, 44, 45, 31, 29, 43, 24, -2, 29, 37],
       [ 8, 43, 34, 16,  4, -5,  5, 45, 38, 18],
       [-3, 29, 30, 25, -2, 13, 41, 30, 15, 12],
       [45, 22,  9, 36, -4, 31,  5, 17, 38, 35],
       [ 6, -3, 46, 11, 27, 49, -5, 33, 14, 41],
       [37, 46, 35,  8, 25, 19, -3, -2, 25, 29],
       [38,  8, 43, 35,  3, 14, 26,  3, 21, -3],
       [47, -2, 39,  9, 27, -1, -2, 40,  6, 17]])

output = sum(1 for row in matrix if all(0 <= value <= 50 for value in row))
print(output)
>>> 3

推荐阅读