在没有for循环的numpy 2-d数组中获取随机真值PER COLUMN的索引

我想使用最有效的方法(即没有 python for 循环)在 numpy 二维数组中获取每列随机真值的索引。

例如,给定以下 2-d numpy.ndarray

np.array(
    [[True, False, False],
     [True, True, True],
     [False, True, False]])

提供一个 1-d numpy.ndarray,它给出每列真值的随机行索引位置(即第一轴):

numpy.ndarray([0, 2, 1])

通过反例,以下内容将不正确:

numpy.ndarray([2, 2, 1])

因为,第一列在第三行中具有非 True 值。


慕尼黑5688855
浏览 80回答 1
1回答

qq_遁去的一_1

您可以执行以下操作:import numpy as npa = np.array(    [[True, False, False],     [True, True, True],     [False, True, False]])result = np.argmax(a * np.random.randint(1, 100, size=a.shape), axis=0)print(result)输出[1 2 1]这个想法是np.argmax将始终选择数组所在的位置True,然后由random.randint函数完成随机选择哪个位置。True它将为每个值分配一个随机整数,然后您选择最大值的索引。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python