繁体   English   中英

比较两个 numpy arrays

[英]Comparing two numpy arrays

初始化空 numpy 数组

y=np.empty((2,2),dtype=np.matrix)
b=np.empty((2,2),dtype=np.matrix)

为上述 arrays 赋值

b[0][0]=np.mat([
[67,57],
[19,56]])

b[0][1]=np.mat([
[7,58],
[9,46]])  

b[1][0]=np.mat([
[77,47],
[34,34]])

b[1][1]=np.mat([
[2,66],
[78,45]])

y[0][0]=np.mat([
[67,57],
[19,56]])

y[0][1]=np.mat([
[7,58],
[9,46]]) 

 y[1][0]=np.mat([
[77,47],
[34,34]])

y[1][1]=np.mat([
[2,66],
[78,45]])

打印数组

print(y)
print(b)

y 和 b arrays 相等,它应该打印 True 但它打印的是 False

print(np.array_equal(y,b))
print(y==b)

首先,正如 Michael Szczesny 所提到的, np.mat已被弃用,您应该避免使用它。 Object arrays 也有点不确定,但有时可以起到作用。 虽然要回答实际问题:

要检查 arrays 的这些 arrays 之间的相等性,您需要检查内部 arrays 是否相等,然后从那里检查 Z34D1B6F91FB2E75AB9A8 是否相等。 为此,您可以欺骗 numpy 明智地应用np.array_equal元素,然后检查np.all

import numpy as np
deep_equal = np.vectorize(np.array_equal)
def inner_array_equal(a,b): return np.all(deep_equal(a,b))


a = np.empty(2,dtype=object)
b = np.empty(2,dtype=object)

a[0] = np.array([1,2])
a[1] = np.array([3,4])

b[0] = np.array([1,2])
b[1] = np.array([3,4])

print(a,b)

print(inner_array_equal(a,b))

请注意,我将您的代码切换为显式 object arrays (尽管dtype=np.matrix会做同样的事情)并用np.array填充它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM