擅长:python、mysql、java
<p>求小于零的最大数和大于零的最小数</p>
<pre><code>import numpy as np
a = [-18.987536121749894, 9.154936510174036, -4.626424654409895]
b = [-4.626424654409895, 9.154936510174036, 2.355498340416582]
c = [-0.5, 0.1, 0.005]
for thing in (a,b,c):
thing = np.array(thing)
x = thing[thing<0].max()
y = thing[thing>0].min()
ix = np.where(np.isclose(thing,x))[0]
iy = np.where(np.isclose(thing,y))[0]
print(f'{x},{y},{ix},{iy}')
# or
indices = np.where(np.any(np.isclose(thing[:,None],[x,y]),axis=-1))
print(f'indices:{indices[0]}')
</code></pre>
<hr/>
<p>如果测试列表中没有正数或负数,将抛出ValueError</p>