Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.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 计算numy.ndarray中大于某个值的元素数_Python_Python 3.x_Numpy Ndarray - Fatal编程技术网

Python 计算numy.ndarray中大于某个值的元素数

Python 计算numy.ndarray中大于某个值的元素数,python,python-3.x,numpy-ndarray,Python,Python 3.x,Numpy Ndarray,我想计算大于某个特定值的numpy.ndarry中的元素数。如何获得所需的结果 例如: [[0.25656927 0.31030828 0.23430803 0.25999823 0.20450112 0.19383106 0.35779405 0.36355627 0.16837767 0.1933686 0.20630316 0.17804974 0.06902786 0.26209944 0.21310201 0.12016498 0.14213449 0.16639964

我想计算大于某个特定值的numpy.ndarry中的元素数。如何获得所需的结果

例如:

[[0.25656927 0.31030828 0.23430803 0.25999823 0.20450112 0.19383106
  0.35779405 0.36355627 0.16837767 0.1933686  0.20630316 0.17804974
  0.06902786 0.26209944 0.21310201 0.12016498 0.14213449 0.16639964
  0.33461425 0.15897344 0.20293266 0.14630634 0.2509769  0.17211646
  0.3922994  0.14036047 0.12571093 0.25565785 0.18216616 0.0728473
  0.25328827 0.1476636  0.1873344  0.12253726 0.16082433 0.20678088
  0.33296013 0.03104548 0.14949016 0.05495472 0.1494042  0.32033417
  0.05361898 0.14325878 0.16196126 0.15796155 0.10990247 0.14499696]]
是数组,我希望元素数大于
0.19214945092486838
。 这里的值是21。如何计算它?

您可以简单地执行以下操作:

import numpy

arr = numpy.asarray([0.25656927, 0.31030828, 0.23430803, 0.25999823, 0.20450112, 0.19383106, 0.35779405, 0.36355627, 0.16837767, 0.1933686,  0.20630316, 0.17804974, 0.06902786, 0.26209944, 0.21310201, 0.12016498, 0.14213449, 0.16639964, 0.33461425, 0.15897344, 0.20293266, 0.14630634, 0.2509769,  0.17211646, 0.3922994,  0.14036047, 0.12571093, 0.25565785, 0.18216616, 0.0728473, 0.25328827, 0.1476636,  0.1873344,  0.12253726, 0.16082433, 0.20678088, 0.33296013, 0.03104548, 0.14949016, 0.05495472, 0.1494042,  0.32033417, 0.05361898, 0.14325878, 0.16196126, 0.15796155, 0.10990247, 0.14499696])

print((arr > 0.19214945092486838).sum())
输出为:
21

您只需执行以下操作:

import numpy

arr = numpy.asarray([0.25656927, 0.31030828, 0.23430803, 0.25999823, 0.20450112, 0.19383106, 0.35779405, 0.36355627, 0.16837767, 0.1933686,  0.20630316, 0.17804974, 0.06902786, 0.26209944, 0.21310201, 0.12016498, 0.14213449, 0.16639964, 0.33461425, 0.15897344, 0.20293266, 0.14630634, 0.2509769,  0.17211646, 0.3922994,  0.14036047, 0.12571093, 0.25565785, 0.18216616, 0.0728473, 0.25328827, 0.1476636,  0.1873344,  0.12253726, 0.16082433, 0.20678088, 0.33296013, 0.03104548, 0.14949016, 0.05495472, 0.1494042,  0.32033417, 0.05361898, 0.14325878, 0.16196126, 0.15796155, 0.10990247, 0.14499696])

print((arr > 0.19214945092486838).sum())
输出是:
21

这里有一种方法

my_array = ... the target array ...
result = sum(0.19214945092486838 < x for x in my_array)
my_数组=。。。目标阵列。。。
结果=总和(0.19214945092486838
这里有一种方法

my_array = ... the target array ...
result = sum(0.19214945092486838 < x for x in my_array)
my_数组=。。。目标阵列。。。
结果=总和(0.19214945092486838
ar[ar>0.19214945092486838]
将为您提供高于当前值的元素列表。您可以使用
len
获取长度

>>> import numpy as np
>>> ar = np.array([0.25656927,0.31030828,0.23430803,0.25999823,0.20450112,0.19383106,0.35779405,0.36355627,0.16837767,0.1933686,0.20630316,0.17804974    ,0.06902786,0.26209944,0.21310201,0.12016498,0.14213449,0.16639964,0.33461425,0.15897344,0.20293266,0.14630634,0.2509769,0.17211646    ,0.3922994,0.14036047,0.12571093,0.25565785,0.18216616,0.0728473,0.25328827,0.1476636,0.1873344,0.12253726,0.16082433,0.20678088    ,0.33296013,0.03104548,0.14949016,0.05495472,0.1494042,0.32033417,0.05361898,0.14325878,0.16196126,0.15796155,0.10990247,0.14499696])

>>> print(len(ar[ar>0.19214945092486838]))
>>> 21

ar[ar>0.19214945092486838]
将为您提供高于当前值的元素列表。您可以使用
len
获取长度

>>> import numpy as np
>>> ar = np.array([0.25656927,0.31030828,0.23430803,0.25999823,0.20450112,0.19383106,0.35779405,0.36355627,0.16837767,0.1933686,0.20630316,0.17804974    ,0.06902786,0.26209944,0.21310201,0.12016498,0.14213449,0.16639964,0.33461425,0.15897344,0.20293266,0.14630634,0.2509769,0.17211646    ,0.3922994,0.14036047,0.12571093,0.25565785,0.18216616,0.0728473,0.25328827,0.1476636,0.1873344,0.12253726,0.16082433,0.20678088    ,0.33296013,0.03104548,0.14949016,0.05495472,0.1494042,0.32033417,0.05361898,0.14325878,0.16196126,0.15796155,0.10990247,0.14499696])

>>> print(len(ar[ar>0.19214945092486838]))
>>> 21

使用numpy,您可以尝试:

Myarray= [ [ your array]]
Value_to_search=0.19214945092486838

Array_greater_than=Myarray>Value_to_search
Nb_Val_greater_than=Array_greater_than.sum()
print(Nb_Val_greater_than)

使用numpy,您可以尝试:

Myarray= [ [ your array]]
Value_to_search=0.19214945092486838

Array_greater_than=Myarray>Value_to_search
Nb_Val_greater_than=Array_greater_than.sum()
print(Nb_Val_greater_than)

要获取项目大于/小于的数组,请执行以下操作:

>>> import numpy as np
>>> data = np.arange(12)
>>> data > 5
array([False, False, False, False, False, False,  True,  True,  True,
        True,  True,  True])
然后您只需找到数组的和:

>>> (data > 5).sum()
6

现在,将
数据
替换为您的值,并使用
(数据>0.19214945092486838)

获取项目大于/小于以下值的数组:

>>> import numpy as np
>>> data = np.arange(12)
>>> data > 5
array([False, False, False, False, False, False,  True,  True,  True,
        True,  True,  True])
然后您只需找到数组的和:

>>> (data > 5).sum()
6

现在,用您的值替换
数据
,并使用
(数据>0.19214945092486838)

以下代码片段将实现您的愿望:)


下面的代码片段将实现您的期望:)

最干净的方式(IMHO):

x>1
将数组
x
转换为布尔数组,大于1的元素为真。然后您可以通过
np.count\u nonzero()计算真值

因此,
np.count\u非零(x>1)
最干净的方式(IMHO):

x>1
将数组
x
转换为布尔数组,大于1的元素为真。然后您可以通过
np.count\u nonzero()计算真值

因此,
np.count\u非零(x>1)

计数:

arr[np.where(arr>0.19214945092486838)].shape[0]
    
计数:

arr[np.where(arr>0.19214945092486838)].shape[0]
    

您可以使用len计算结果,如以下示例所示:

import numpy as np

matrix = np.array([[0.25656927,0.31030828,0.23430803,0.25999823,0.20450112,0.19383106,
  0.35779405, 0.36355627, 0.16837767, 0.1933686, 0.20630316, 0.17804974,
  0.06902786, 0.26209944, 0.21310201, 0.12016498, 0.14213449, 0.16639964,
  0.33461425, 0.15897344, 0.20293266, 0.14630634, 0.2509769,  0.17211646,
  0.3922994,  0.14036047, 0.12571093, 0.25565785, 0.18216616, 0.0728473,
  0.25328827, 0.1476636,  0.1873344,  0.12253726, 0.16082433, 0.20678088,
  0.33296013, 0.03104548, 0.14949016, 0.05495472, 0.1494042,  0.32033417,
  0.05361898, 0.14325878, 0.16196126, 0.15796155, 0.10990247, 0.14499696]])

n = len(matrix[matrix > 0.18])
print(n)

您可以使用len计算结果,如以下示例所示:

import numpy as np

matrix = np.array([[0.25656927,0.31030828,0.23430803,0.25999823,0.20450112,0.19383106,
  0.35779405, 0.36355627, 0.16837767, 0.1933686, 0.20630316, 0.17804974,
  0.06902786, 0.26209944, 0.21310201, 0.12016498, 0.14213449, 0.16639964,
  0.33461425, 0.15897344, 0.20293266, 0.14630634, 0.2509769,  0.17211646,
  0.3922994,  0.14036047, 0.12571093, 0.25565785, 0.18216616, 0.0728473,
  0.25328827, 0.1476636,  0.1873344,  0.12253726, 0.16082433, 0.20678088,
  0.33296013, 0.03104548, 0.14949016, 0.05495472, 0.1494042,  0.32033417,
  0.05361898, 0.14325878, 0.16196126, 0.15796155, 0.10990247, 0.14499696]])

n = len(matrix[matrix > 0.18])
print(n)

这回答了你的问题吗?这回答了你的问题吗?我正要发布同样的东西@雷,嗯,这可能是实现这一点的最干净的方法之一(据我所知),这可能是计算它的最简单和最快的方法。工作非常好。我正要发布同样的东西@雷,嗯,这可能是实现这一点的最干净的方法之一(据我所知),这可能是计算它的最简单和最快的方法。效果绝对不错。