【发布时间】:2019-05-17 06:20:34
【问题描述】:
我正在尝试比较两个 3 维数组并计算有多少内部数组相等。
我正在比较图片的 2 个色块,想知道有多少像素相等,而不是多少颜色值相等。如果它很有效,那就太好了,所以我正在使用 numpy.我知道如何与 for 循环进行比较,但它太慢了。
但我只能按元素计算,这是我的 sn-p:
import numpy as np
a = np.array([[[255, 255, 255],
[255, 255, 255],
[255, 255, 255],
[255, 255, 255]],
[[255, 255, 255],
[255, 255, 255],
[255, 255, 255],
[255, 255, 255]],
[[255, 255, 255],
[255, 255, 255],
[255, 255, 255],
[255, 255, 255]],
[[255, 255, 255],
[255, 255, 255],
[255, 255, 255],
[255, 255, 255]]])
b = np.array([[[255, 255, 255],
[255, 255, 255],
[0, 0, 0],
[0, 0, 0]],
[[255, 255, 255],
[255, 255, 255],
[0, 0, 0],
[0, 0, 0]],
[[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]],
[[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]]])
print(np.sum(a[:, :] == b[:, :]))
# prints 12 and i would like to have a 4 in this example
【问题讨论】:
-
期望的答案不应该是 4 吗?我看到 4 个子数组相等
-
当然是的:)