17_NumPy数组ndarray中计算满足条件的元素的个数
连同示例代码一起说明了一种计算满足NumPy数组ndarray条件的元素数量的方法。
将描述以下内容。
- 全体ndarray中满足条件的元素数的计算
- 计算ndarray的每一行和每一列满足条件的元素数
- 使用numpy.any()(全体,行/列)检查是否有满足条件的元素
- 使用numpy.all()检查所有元素是否都满足条件(全体,行/列)
- 多种条件
要替换满足条件的元素,请参考以下文章。
- 04_Numpy的函数np.where()—满足条件的处理
全体ndarray中满足条件的元素数的计算
将ndarray与标量值进行比较将返回以布尔值(True,False)作为元素的ndarray。您可以将<,==,!=等进行比较。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37import 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的数量,即满足条件的元素的数量
1
2
3
4
5print(np.count_nonzero(a < 4)) # 4 print(np.count_nonzero(a % 2 == 1)) # 6
Trueは1, Falseは0として扱われるのでnp.sum()を使うことも可能。ただし、np.count_nonzero()のほうが高速。
1
2
3
4
5print(np.sum(a < 4)) # 4 print(np.sum(a % 2 == 1)) # 6
计算ndarray的每一行和每一列满足条件的元素数
通过指定参数轴,为每个轴(每个维度)处理多维数组的Np.count_nonzero()。
在二维数组的情况下,将在参数axis= 0的列中进行处理,在axis= 1的行中进行处理。通过使用它,可以计算满足每一行和每一列条件的元素的数量。
1
2
3
4
5
6
7
8
9print(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。
1
2
3
4
5print(np.any(a < 4)) # True print(np.any(a > 100)) # False
与np.count_nonzero()类似,如果指定了参数轴,则np.any()将处理每一行和每一列。
1
2
3
4
5
6
7
8print(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。
1
2
3
4
5print(np.all(a < 4)) # False print(np.all(a < 100)) # True
与np.count_nonzero()相似,当指定参数轴时,将对每一行和每一列处理np.all()。
1
2
3
4
5print(np.all(a < 4, axis=0)) # [False False False False] print(np.all(a < 4, axis=1)) # [ True False False]
多种条件
如果要组合多个条件,请将每个条件表达式括在()中,并将其与&或|连接。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20print((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中计算满足条件内容请搜索靠谱客的其他文章。
发表评论 取消回复