我正在尝试在以NumPy数组形式存储的图像中分离不同的对象。例如,如果我有2D NumPy数组:

X = np.array([[1.4E14, 1.4E14, 1.6E14], [1.4E14, 1.6E14, 1.6E14], [1.6E14, 1.1E14, 1.1E14]])


我如何通过实例将其分成相同形状的二进制数组:

Y = np.array([[1, 1, 0], [1, 0, 0], [0, 0, 0]])
Z = np.array([[0, 0, 1], [0, 1, 1], [1, 0, 0]])
W = np.array([[0, 0, 0], [0, 0, 0], [0, 1, 1]])


其中Y表示1.4E14的值,Z表示1.6E14的值,并且W表示1.1E14的值,并且所有实例的形状与原始数组相同。关于如何有效处理大型阵列的任何想法?

最佳答案

这应该可以解决问题:

import numpy as np

X = ([1.4E14, 1.4E14, 1.6E14], [1.4E14, 1.6E14, 1.6E14], [1.6E14, 1.1E14, 1.1E14])

numbers = [1.4E14, 1.6E14, 1.1E14]

x = np.array(X)

for j in numbers:
    result = (x == j)+0
    print("comparing with " + str(j))
    print(result[:].tolist())
    print("")

关于python - 如何通过创建单独的二进制数组有效地分割NumPy数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59332236/

10-11 22:48