Python 如何从numpy数组打印小于变量的元素
您好,我是python新手,一个赋值要求我打印小于numpy数组变量的元素 我制作了一个20x10 numpy的数组,其中包含-5到50之间的随机整数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,
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)和(xx)谢谢你,伙计,这就是我想要的答案嗨,如果你不介意我再问一遍的话。为什么你给的这个代码是np.sum(x=0)和(xx)