Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从numpy数组打印小于变量的元素_Python_Arrays_Numpy - Fatal编程技术网

Python 如何从numpy数组打印小于变量的元素

Python 如何从numpy数组打印小于变量的元素,python,arrays,numpy,Python,Arrays,Numpy,您好,我是python新手,一个赋值要求我打印小于numpy数组变量的元素 我制作了一个20x10 numpy的数组,其中包含-5到50之间的随机整数 x = np.random.randint (-5, 50, (20, 10)) x array([[17, 23, 15, 13, -1, 17, 30, 14, 2, 3], [ 8, 0, -5, 3, 10, 10, 48, 6, -1, 34], [23, 40, 21, 5, 47, 41, 44, 22,

您好,我是python新手,一个赋值要求我打印小于numpy数组变量的元素

我制作了一个20x10 numpy的数组,其中包含-5到50之间的随机整数

x = np.random.randint (-5, 50, (20, 10))
x

array([[17, 23, 15, 13, -1, 17, 30, 14,  2,  3],
   [ 8,  0, -5,  3, 10, 10, 48,  6, -1, 34],
   [23, 40, 21,  5, 47, 41, 44, 22, 46, 30],
   [36, 13, 48, 29, 46, 25, 48, 38, 13, 40],
   [18, -4,  1, 37, 48, 43, 25, 11, 21, 30],
   [44, 37,  4, 39,  8,  1, 33, 34,  3,  8],
   [ 2, 11, 17, 10, 20,  3, 30,  1, 12,  2],
   [15, 20, -3, 11, 45, 40, 18, 19, -1, 31],
   [39, 44, 18, 25, 49, 20, 15, 28, 32, 18],
   [22, 24, 28, 46, 48, 46, 17, 49,  2, 36],
   [44,  4, 49, -5, 14, 31, 12, 15, 48, 43],
   [-2, 37, -4, 15, 31, -1, 11, 43, 42,  5],
   [40, 35, 25, 22, 38, 26, 15,  1,  4, 22],
   [42, 30, 14,  7, 13, 44,  5, 29, 28, 38],
   [-2,  7, 31, -4, 44, -5, 34, 19, 31, 30],
   [ 0,  1, -2, 29, 35, 28, 23, -1, 21, 27],
   [40, 46,  4, 48,  0, 28,  2, 25,  3, 49],
   [15,  2, -2, 16, 22, 39, -2, 33, 15,  2],
   [14, 26, -5,  0, 22, 38, 25,  4, 14,  2],
   [16, 32, 23,  3, 38, 41, -5, 35, 46, 33]])
以上就是结果。现在我想打印每行少于5个元素的数量

我设法做到了

print (x[0, :] < 5)

[False False False False  True False False False  True  True]
打印(x[0,:]<5)
[假假假假真假假假真]
结果如上图所示,但我想让它显示少于5个元素的数量。我想让它给我3,因为有3个元素


有人能帮我吗?谢谢

您可以使用布尔掩码对数组进行索引,然后对元素进行计数。或者,您可以使用
numpy.where()
。与您的方法类似,它将为您提供满足特定条件的布尔掩码

例如:

indices = numpy.where(x < 3)
values_greater_than_3 = x[indices]
count = len(values_greater_than_3)
print(count)
index=numpy.where(x<3)
大于3的值=x[指数]
计数=长度(值大于3)
打印(计数)

您可以使用布尔掩码对数组进行索引,然后对元素进行计数。或者,您可以使用
numpy.where()
。与您的方法类似,它将为您提供满足特定条件的布尔掩码

例如:

indices = numpy.where(x < 3)
values_greater_than_3 = x[indices]
count = len(values_greater_than_3)
print(count)
index=numpy.where(x<3)
大于3的值=x[指数]
计数=长度(值大于3)
打印(计数)

对于像您这样的
bool
类型的数组,可以使用
np.sum
。因此,首先我尝试了以下方法:

[np.sum(n<5) for n in x]

此命令将
bool
数组从
x
中取出,然后沿y轴(轴号1)计算每行的
True
值对于像您这样的
bool
类型的数组,可以使用
np.sum
。因此,首先我尝试了以下方法:

[np.sum(n<5) for n in x]

此命令从
x
中生成
bool
数组,然后计算沿y轴(轴号1)的每一行的
True

非常感谢,这是我正在寻找的答案嗨,如果你不介意我再问一次的话。为什么你给的这个代码是np.sum(x=0)和(x
x)谢谢你,伙计,这就是我想要的答案嗨,如果你不介意我再问一遍的话。为什么你给的这个代码是np.sum(x=0)和(x
x)