python快捷运算:对数组进行条件判断

经常需要对二维数据进行条件判断并计数,为了避免按索引进行比较的低效率,python提供了功能强大的数组逻辑运算。

下面是一个简单的例子,可以根据实际情况进行扩展。

#!/usr/bin/env python
import numpy as np
from math import *
n_map = [[0, 100, 0, 10],
        [30, 20, 80, 50]]
t_map = [[10, 20, 30, 40],
        [70, 80, 20, 50]]
occupied_thre = 80
free_thre = 20        
n_map = np.array(n_map)
t_map = np.array(t_map)
free_num = np.sum(n_map <= free_thre)
occu_num = np.sum(n_map >= occupied_thre)
print 'free num ', free_num
print 'occu num ', occu_num

free_nmap = n_map <= free_thre
occu_nmap = n_map >= occupied_thre
free_tmap = t_map >= occupied_thre
occu_tmap = t_map <= free_thre
true_free = free_nmap & free_tmap
print 'true free ', np.sum(true_free)
false_free = free_nmap & occu_tmap
print 'false free ', np.sum(false_free)
true_occu = occu_nmap & occu_tmap
print 'true occu ', np.sum(true_occu)
false_occu = occu_nmap & free_tmap
print 'false occu ', np.sum(false_occu)

如果是按数组索引进行比较,那么数组规模较大时效率很低!

猜你喜欢

转载自blog.csdn.net/li4692625/article/details/115451886