簡體   English   中英

如何在Numpy中比較兩個數組'array-elementwise'的數組?

[英]How to compare two arrays of arrays 'array-elementwise' in Numpy?

給定數組A和B的兩個數組,我需要測試從A(ai)到B中的相應子數組(bi)的相等性:

import numpy as np

a1 = np.array([1, 2, 3])
a2 = np.array([3, 4, 5])
a3 = np.array([2, 4, 6])
A = np.array([a1, a2, a3])

b1 = np.array([3, 2, 1])
b2 = np.array([3, 4, 5])
b3 = np.array([6, 4, 2])
B = np.array([b1, b2, b3])

def compare_arrays(A, B):
    #ret = A == B
    #ret = np.array_equal(A, B)
    return ret

print(compare_arrays(A, B))

毫不奇怪,我通過A == B獲得的輸出: [[False True False][ True True True][False True False]]

毫不奇怪,我通過np.array_equal(A, B)獲得的輸出: False

我想得到的輸出: [[False, True, False]]

我想知道是否存在尚未找到的現成解決方案,或者是否應該實施自己的解決方案。

您可以從A == B獲得沿軸= 1的邏輯和結果。

def compare_arrays(A, B):
    ret = np.equal(A, B).all(axis=1)
    return ret

您可以使用如下形式:

def compare_arrays(A, B):
    return map(lambda item: not False in item, A==B)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM