gpt4 book ai didi

python - 根据 lambda 函数将 NumPy 整数列表值映射到列表

转载 作者:行者123 更新时间:2023-12-04 01:02:50 24 4
gpt4 key购买 nike

如何根据 lambda 函数将整数 NumPy 数组的每个值映射到列表?

我有以下代码:

x = [0, 1, 2, 0, 0, 2, 1, 1]
colours = [[0, 0, 0], [255, 0, 0], [0, 255, 0], [0, 0, 255]]

coloured = lambda v: colours[int(v)]
vcoloured = np.vectorize(coloured)

x_color = vcoloured(x) # throws ValueError: setting an array element with a sequence.

# would like to get x_color = [[0, 0, 0], [255, 0, 0], [0, 255, 0], [0, 0, 0], [0, 0, 0], [0, 255, 0], [255, 0, 0], [255, 0, 0]]

最佳答案

根本不用理会列表。如果你有 numpy 数组,使用 numpy 的力量会更快:

>>> x = np.array([0, 1, 2, 0, 0, 2, 1, 1])
>>> colors = np.array([[0, 0, 0], [255, 0, 0], [0, 255, 0], [0, 0, 255]])
>>> x_color = colors[x]
>>> x_color
array([[ 0, 0, 0],
[255, 0, 0],
[ 0, 255, 0],
[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 255, 0],
[255, 0, 0],
[255, 0, 0]])

是的,我继续将您的拼写美国化,但在功能上,数组 x_colored 的行为与所有实际用途的列表一样。如果您确实需要一个列表,只需对结果调用 tolist:

x_color = colors[x].tolist()

关于python - 根据 lambda 函数将 NumPy 整数列表值映射到列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67673989/

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