gpt4 book ai didi

python - 如何从 python 中给定的整数列表创建 bool 值的多列列表?

转载 作者:太空宇宙 更新时间:2023-11-04 08:34:08 24 4
gpt4 key购买 nike

我是 Python 新手。我想做以下事情。

输入:大小为 n 的整数列表。每个整数都在 0 到 3 的范围内。

输出:多列(在本例中为 4 列,整数范围为 0-3 = 4)大小为 n 的 numpy 列表。新列表的每一行都将与输入列表的整数值对应的列为 True,其余列为 False。

例如Input list : [0, 3, 2, 1, 1, 2], size = 6, 每个整数在0-3范围内

输出列表:

Row 0: True  False  False  False
Row 1: False False False True
Row 2: False False True False
Row 3: False True False False
Row 4: False True False False
Row 5: False False True False

现在,我可以从 4 列开始。遍历输入列表并按如下方式创建,

output_columns[].
for i in Input list:
output_column[i] = True
Create an output numpy list with output columns

这是在 Python 中执行此操作的最佳方法吗?特别是用于创建 numpy 列表作为输出。

如果是,我如何在末尾合并 output_columns[] 以创建 numpy 多维列表,每个维度作为 output_columns 的一列。

如果没有,用 Python 执行此操作的最佳(最省时的方法)是什么?

谢谢,

最佳答案

Is this the best way to do this in Python?

不,一个更 Pythonic 并且可能是最好的方法是使用一个简单的广播比较,如下所示:

In [196]: a = np.array([0, 3, 2, 1, 1, 2])

In [197]: r = list(range(0, 4))

In [198]: a[:,None] == r
Out[198]:
array([[ True, False, False, False],
[False, False, False, True],
[False, False, True, False],
[False, True, False, False],
[False, True, False, False],
[False, False, True, False]])

关于python - 如何从 python 中给定的整数列表创建 bool 值的多列列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50542815/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com