# NumPy：比较两个数组中的元素

``a = array([1,2,3,4,5,6]) b = array([1,4,5])` `

` `c = a == b # Wishful example here print c array([1,4,5]) # Or even better array([True, False, False, True, True, False])` `

### 6 Solutions collect form web for “NumPy：比较两个数组中的元素”

` `import numpy as np a = array([1,2,3,4,5,6]) b = array([1,4,5]) c = np.in1d(a,b)` `

` `array([ True, False, False, True, True, False], dtype=bool)` `

` `#!/usr/bin/env python import numpy as np a = np.array([1,2,3,4,5,6]) b = np.array([1,4,5]) c=np.intersect1d(a,b) print(c) # [1 4 5]` `

` `import numpy as np a = np.array([1,4,5]).astype(np.float32) b = np.arange(10).astype(np.float32) # Assigning matching values from a in b as np.nan b[b.searchsorted(a)] = np.nan # Now generating Boolean arrays match = np.isnan(b) nonmatch = match == False` `

Numpy有一个函数numpy.setmember1d（），它可以在有序数组和分离数组上工作，并返回你想要的布尔数组。 如果input数组不符合标准，则需要将其转换为设置格式，并对结果进行转换。

` `import numpy as np a = np.array([6,1,2,3,4,5,6]) b = np.array([1,4,5]) # convert to the uniqued form a_set, a_inv = np.unique1d(a, return_inverse=True) b_set = np.unique1d(b) # calculate matching elements matches = np.setmea_set, b_set) # invert the transformation result = matches[a_inv] print(result) # [False True False False True True False]` `

` `result = np.zeros(a.shape, dtype=np.bool) idxs = a.searchsorted(b) idxs = idxs[np.where(idxs < a.shape[0])] # Filter out out of range values idxs = idxs[np.where(a[idxs] == b)] # Filter out where there isn't an actual match result[idxs] = True print(result)` `

ebresset， 你的答案不会工作，除非a是b的一个子集（而a和b是sorting的）。 否则，searchsorted将返回错误的索引。 我不得不做类似的事情，并结合你的代码：

` `# Assume a and b are sorted idxs = numpy.mod(b.searchsorted(a),len(b)) idxs = idxs[b[idxs]==a] b[idxs] = numpy.nan match = numpy.isnan(b)` `

` `>>> import numpy >>> a = numpy.array([1,2,3]) >>> b = numpy.array([1,3,3]) >>> a == b array([ True, False, True], dtype=bool)` `
• Python：元组/字典作为键，select，sorting
• 我怎样才能输出SUDs产生/接收？
• 如何检查运行我的脚本的Python版本是什么？
• Python字典中的按键顺序
• 散列字典？
• Django模型Mixins：从models.Modelinheritance还是从对象inheritance？
• 多处理中的共享内存
• 在简单的HTTP服务器上启用访问控制
• 双从单个列表
• pythonstring编码/解码