[英]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.