10 numpy 聚合函数 - where,unique

=== np.where函数 ===

np.where( 判断条件[布尔类型数组],True使用的值,False使用的值 )

例1:两组数据,取对应位置较大的值

arr1 = np.array([1,2,3,4])
arr2 = np.array([3,1,4,2])
np.where((arr1>arr2),arr1,arr2)

array([3, 2, 4, 4])

例2:将nan值替换成0

data = np.array([np.nan,1.1,1.2,np.nan]) 
print(data)
np.where(np.isnan(data),0.,data)

[ nan 1.1 1.2 nan]
[ 0. , 1.1, 1.2, 0. ]

=== np.unique函数 ===

去重操作

arr = np.random.randint(0,10,100).reshape(10,-1)
print(arr)
print('-'*25)
print(np.unique(arr))
print('-'*25)
print(np.unique(arr,axis=0))
print('-'*25)
print(np.unique(arr,axis=1))

原方阵

[[6 9 3 4 5 8 5 8 0 1]
 [6 7 4 1 1 8 7 3 4 7]
 [1 0 6 3 3 7 5 4 4 3]
 [5 7 6 1 9 7 2 0 6 8]
 [4 9 5 7 1 0 9 4 5 9]
 [2 8 1 0 7 5 9 7 0 0]
 [1 8 9 2 4 5 9 8 3 4]
 [0 8 6 5 4 1 0 7 3 1]
 [7 3 4 8 9 2 1 1 7 2]
 [9 6 4 1 8 8 9 6 2 3]]
-------------------------

对所有元素进行去重

[0 1 2 3 4 5 6 7 8 9]
-------------------------

竖向去重 axis=0 横向去重 axis=1
结果都和原来一样,原因在于去重的对象是方阵
只有所有列的元素都相同,才能对行进行去重

[[0 8 6 5 4 1 0 7 3 1]
 [1 0 6 3 3 7 5 4 4 3]
 [1 8 9 2 4 5 9 8 3 4]
 [2 8 1 0 7 5 9 7 0 0]
 [4 9 5 7 1 0 9 4 5 9]
 [5 7 6 1 9 7 2 0 6 8]
 [6 7 4 1 1 8 7 3 4 7]
 [6 9 3 4 5 8 5 8 0 1]
 [7 3 4 8 9 2 1 1 7 2]
 [9 6 4 1 8 8 9 6 2 3]]
-------------------------
[[0 1 3 4 5 5 6 8 8 9]
 [4 7 4 1 1 7 6 3 8 7]
 [4 3 6 3 3 5 1 4 7 0]
 [6 8 6 1 9 2 5 0 7 7]
 [5 9 5 7 1 9 4 4 0 9]
 [0 0 1 0 7 9 2 7 5 8]
 [3 4 9 2 4 9 1 8 5 8]
 [3 1 6 5 4 0 0 7 1 8]
 [7 2 4 8 9 1 7 1 2 3]
 [2 3 4 1 8 9 9 6 8 6]]
上一篇:Ubuntu烧录启动U盘


下一篇:memcached 如何实现冗余机制?