gpt4 book ai didi

python - Numpy 整数数组转换为 numpy 数组数组

转载 作者:行者123 更新时间:2023-12-02 06:48:42 25 4
gpt4 key购买 nike

我想将 numpy 数组转换为 numpy 数组数组。

我有一个数组:a = [[0,0,0],[0,255,0],[0,255,255],[255,255,255]]

我想要:b = [[[0,0,0],[0,0,0],[0,0,0]],[[0,0,0] ,[255,255,255],[0,0,0]],[[0,0,0],[255,255,255],[255,255,255]],[[255,255,255],[255,255,255],[255,255,255]]]

有什么简单的方法吗?

我尝试过 np.where(a == 0, [0,0,0],[255,255,255]) 但出现以下错误:

ValueError: operands could not be broadcast together with shapes

最佳答案

您可以使用broadcast_to作为

b = np.broadcast_to(a, (3,4,3))

其中a是形状(3,4)。然后你需要交换轴

import numpy as np
a = np.array([[0,0,0],[0,255,0],[0,255,255],[255,255,255]])
b = np.broadcast_to(a, (3,4,3))
c = np.moveaxis(b, [0,1,2], [2,0,1])
c

给予

array([[[  0,   0,   0],
[ 0, 0, 0],
[ 0, 0, 0]],

[[ 0, 0, 0],
[255, 255, 255],
[ 0, 0, 0]],

[[ 0, 0, 0],
[255, 255, 255],
[255, 255, 255]],

[[255, 255, 255],
[255, 255, 255],
[255, 255, 255]]])

@Divakar建议的更直接的方法广播方法是

 b = np.broadcast(a[:,:,None], (4,3,3))

无需交换轴即可产生相同的输出。

关于python - Numpy 整数数组转换为 numpy 数组数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59360516/

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