概述
17_NumPy数组ndarray中计算满足条件的元素的个数
连同示例代码一起说明了一种计算满足NumPy数组ndarray条件的元素数量的方法。
将描述以下内容。
- 全体ndarray中满足条件的元素数的计算
- 计算ndarray的每一行和每一列满足条件的元素数
- 使用numpy.any()(全体,行/列)检查是否有满足条件的元素
- 使用numpy.all()检查所有元素是否都满足条件(全体,行/列)
- 多种条件
要替换满足条件的元素,请参考以下文章。
- 04_Numpy的函数np.where()—满足条件的处理
全体ndarray中满足条件的元素数的计算
将ndarray与标量值进行比较将返回以布尔值(True,False)作为元素的ndarray。您可以将<,==,!=等进行比较。
import numpy as np
a = np.arange(12).reshape((3, 4))
print(a)
# [[ 0
1
2
3]
#
[ 4
5
6
7]
#
[ 8
9 10 11]]
print(a < 4)
# [[ True
True
True
True]
#
[False False False False]
#
[False False False False]]
print(a % 2 == 1)
# [[False
True False
True]
#
[False
True False
True]
#
[False
True False
True]]
使用np.count_nonzero()获得True的数量,即满足条件的元素的数量
print(np.count_nonzero(a < 4))
# 4
print(np.count_nonzero(a % 2 == 1))
# 6
Trueは1, Falseは0として扱われるのでnp.sum()を使うことも可能。ただし、np.count_nonzero()のほうが高速。
print(np.sum(a < 4))
# 4
print(np.sum(a % 2 == 1))
# 6
计算ndarray的每一行和每一列满足条件的元素数
通过指定参数轴,为每个轴(每个维度)处理多维数组的Np.count_nonzero()。
在二维数组的情况下,将在参数axis= 0的列中进行处理,在axis= 1的行中进行处理。通过使用它,可以计算满足每一行和每一列条件的元素的数量。
print(np.count_nonzero(a < 4, axis=0))
# [1 1 1 1]
print(np.count_nonzero(a < 4, axis=1))
# [4 0 0]
print(np.count_nonzero(a % 2 == 1, axis=0))
# [0 3 0 3]
print(np.count_nonzero(a % 2 == 1, axis=1))
# [2 2 2]
自版本1.12.0起,可以使用np.count_nonzero()指定参数轴。由于np.sum()自1.7.0版以来已实现参数轴,因此可以将np.sum()用于较早的版本。
使用numpy.any()(全体,行/列)检查是否有满足条件的元素
np.any()是一个函数,如果在作为第一个参数传递的ndarray中至少有一个True元素,则返回True,否则返回False。
print(np.any(a < 4))
# True
print(np.any(a > 100))
# False
与np.count_nonzero()类似,如果指定了参数轴,则np.any()将处理每一行和每一列。
print(np.any(a < 4, axis=0))
# [ True
True
True
True]
print(np.any(a < 4, axis=1))
# [ True False False]
使用numpy.all()检查所有元素是否都满足条件(全体,行/列)
np.all()是一个函数,如果在第一个参数中传递的ndarray的所有元素均为True,则返回True,否则返回False。
print(np.all(a < 4))
# False
print(np.all(a < 100))
# True
与np.count_nonzero()相似,当指定参数轴时,将对每一行和每一列处理np.all()。
print(np.all(a < 4, axis=0))
# [False False False False]
print(np.all(a < 4, axis=1))
# [ True False False]
多种条件
如果要组合多个条件,请将每个条件表达式括在()中,并将其与&或|连接。
print((a < 4) | (a % 2 == 1))
# [[ True
True
True
True]
#
[False
True False
True]
#
[False
True False
True]]
print(np.count_nonzero((a < 4) | (a % 2 == 1)))
# 8
print(np.count_nonzero((a < 4) | (a % 2 == 1), axis=0))
# [1 3 1 3]
print(np.count_nonzero((a < 4) | (a % 2 == 1), axis=1))
# [4 2 2]
请注意,如果省略括号()或使用and和or,将发生错误。
最后
以上就是爱听歌毛豆为你收集整理的17_NumPy数组ndarray中计算满足条件的元素的个数17_NumPy数组ndarray中计算满足条件的元素的个数全体ndarray中满足条件的元素数的计算计算ndarray的每一行和每一列满足条件的元素数使用numpy.any()(全体,行/列)检查是否有满足条件的元素使用numpy.all()检查所有元素是否都满足条件(全体,行/列)多种条件的全部内容,希望文章能够帮你解决17_NumPy数组ndarray中计算满足条件的元素的个数17_NumPy数组ndarray中计算满足条件的元素的个数全体ndarray中满足条件的元素数的计算计算ndarray的每一行和每一列满足条件的元素数使用numpy.any()(全体,行/列)检查是否有满足条件的元素使用numpy.all()检查所有元素是否都满足条件(全体,行/列)多种条件所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复