我有2个numpy数组:
import numpy as np
arr_a = np.random.rand(10)
arr_b = np.random.rand(10)
如果1
和arr_a
之间的幅度差异大于指定的百分比(例如30%),我想创建一个在特定位置包含arr_b
的数组。现在,如果1
大于arr_a
,我可以创建包含arr_b
的数组,否则会创建0
。
arr_c = numpy.where(arr_a > arr_b, 1.0, 0.0)
答案 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。