根据数组之间的差异大小创建numpy数组

时间:2016-01-04 23:31:14

标签: python numpy

我有2个numpy数组:

import numpy as np
arr_a = np.random.rand(10)
arr_b = np.random.rand(10)

如果1arr_a之间的幅度差异大于指定的百分比(例如30%),我想创建一个在特定位置包含arr_b的数组。现在,如果1大于arr_a,我可以创建包含arr_b的数组,否则会创建0

arr_c = numpy.where(arr_a > arr_b, 1.0, 0.0)

2 个答案:

答案 0 :(得分:2)

假设您的意思是相对于arr_a的差异幅度,请使用:

import numpy as np 

arr_a = np.random.rand(10) 
arr_b = np.random.rand(10)

arr_c = np.where((abs(arr_a - arr_b)/arr_a) > 0.3, 1, 0) 

如果您想要相对于arr_b的差异幅度,请使用:

arr_c = np.where((abs(arr_a - arr_b)/arr_b) > 0.3, 1, 0) 

答案 1 :(得分:1)

制作arr_a的副本并按适当的因子进行缩放,然后使用where。