python快捷运算:对数组进行条件判断
经常需要对二维数据进行条件判断并计数,为了避免按索引进行比较的低效率,python提供了功能强大的数组逻辑运算。下面是一个简单的例子,可以根据实际情况进行扩展。#!/usr/bin/env pythonimport numpy as npfrom math import *n_map = [[0, 100, 0, 10],[30, 20, 80, 50]]t_map = [[10, 20, 30,
·
经常需要对二维数据进行条件判断并计数,为了避免按索引进行比较的低效率,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)
如果是按数组索引进行比较,那么数组规模较大时效率很低!
更多推荐
所有评论(0)