我有一个数组a,并且想要对a的每个元素是否在a * 0.5和a * 1.5之间进行逐元素比较。
忽略了这样的事实,显然在构造上是正确的,我可以使用numpy中的运算符来做到这一点吗?像np.less_than
或np.greater_than
之类的东西?
我最初尝试使用
np.logical_or(a * 0.9 <= a, a <= a * 1.1)
但是在负值时不起作用。
a = np.array([
[[ 0.08537571, -0.0067365 , -0.01217636],
[-0.0067365 , 0.02299117, 0.01799304],
[-0.01217636, 0.01799304, 0.02048184]],
[[ 0.10117361, 0.07530722, 0.02475461],
[ 0.07530722, 0.06585286, 0.02021006],
[ 0.02475461, 0.02021006, 0.01555354]],
[[ 0.0310301 , 0.03208571, 0.02354831],
[ 0.03208571, 0.03584655, 0.03389133],
[ 0.02354831, 0.03389133, 0.08047313]],
[[ 0.00012582, 0.00047486, 0.00037565],
[ 0.00047486, 0.02343885, 0.01601785],
[ 0.00037565, 0.01601785, 0.02085996]]])
答案 0 :(得分:0)
np.logical_or(abs(a) * 0.9 <= abs(a), abs(a) <= abs(a) * 1.1)
调整代码以包含abs()只会比较幅度。