返回

python-查询其他两个数组对齐的数组

发布时间:2022-08-26 11:34:06 321
# node.js

我有3个阵列,x,yq. 阵列xy长度相同,q是查询数组。假设中的所有值xq都是独一无二的。对于每个值q,我想在中找到相应值的索引x. 然后我想在中查询该索引y. 如果值来自q不显示在中x,我想回去np.nan.

作为一个具体示例,请考虑以下阵列:

x = np.array([1, 2, 3])                                                                  
y = np.array([4, 5, 6])                                                                  
q = np.array([2, 0])                                                                     

因为只有值2出现在x,正确的返回值为:

out = np.array([5, np.nan])                                                              

对于for循环,可以这样做:

out = []                                                                                 
for i in range(len(z)):                                                                  
    for j in range(len(x)):                                                              
        if np.allclose(z[i], x[j]):                                                      
            out.append(y[j])                                                             
            break                                                                        
    else:                                                                                
        out.append(np.nan)                                                               
return np.array(out)                                                                     

显然这是相当缓慢的。有没有更简单的方法可以使用 numpy 内置函数来做到这一点np.argwhere?或者使用pandas会更容易吗?

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(2)
按点赞数排序
用户头像