人到中年有点甜
您可以将元素与其列式分钟进行比较,然后将大小写为 uint8 以节省一些空间:>>> import numpy as np >>> np.random.seed(444) >>> arr = np.random.rand(10, 4) >>> (arr == arr.min(axis=0)).astype(np.uint8) array([[0, 0, 0, 0], [1, 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, 1], [0, 1, 0, 0], [0, 0, 1, 0]], dtype=uint8)由于 NumPy 的广播,比较arr == arr.min(axis=0)会产生与 的形状相同的结果arr,即使arr.min(axis=0)会有形状(4,)。请注意,如果列有重复的最小值,这可能会在单个列中生成多个“1”。