Don*_*ode 1 python numpy conditional-statements
我有两个数组,我有一个复杂的条件:new_arr<0 and old_arr>0
我使用非零但我收到一个错误.我的代码是这样的:
indices = nonzero(new_arr<0 and old_arr>0)
Run Code Online (Sandbox Code Playgroud)
我试过了:
indices = nonzero(new_arr<0) and nonzero(old_arr>0)
Run Code Online (Sandbox Code Playgroud)
但它给了我不正确的结果.
有没有办法解决?有没有办法从两个非零语句中获取公共索引.例如,如果:
indices1 = nonzero(new_arr<0)
indices2 = nonzero(old_arr>0)
Run Code Online (Sandbox Code Playgroud)
这两个指数将包含:
indices1 = array([0, 1, 3])
indices2 = array([2, 3, 4])
Run Code Online (Sandbox Code Playgroud)
正确的结果是从这两个中得到共同的元素(在这种情况下,它将是元素3).像这样的东西:
result = common(indices1, indices2)
Run Code Online (Sandbox Code Playgroud)
试试indices = nonzero((new_arr < 0) & (old_arr > 0)):
In [5]: import numpy as np
In [6]: old_arr = np.array([ 0,-1, 0,-1, 1, 1, 0, 1])
In [7]: new_arr = np.array([ 1, 1,-1,-1,-1,-1, 1, 1])
In [8]: np.nonzero((new_arr < 0) & (old_arr > 0))
Out[8]: (array([4, 5]),)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2289 次 |
| 最近记录: |