Python 绘制numpy数组的argmax

Python 绘制numpy数组的argmax,python,arrays,numpy,Python,Arrays,Numpy,我有一个形状为(20,20,6)的numpy数组 将numpy导入为np 将matplotlib.cm导入为cm 通道数=6 a=np.随机选择(范围(100),(20,20,个通道)) 我想得到一个形状为(20,20,4)的数组,20x20乘以RGBA颜色,指示a中的哪个值是沿最后一个轴的argmax。因此,我生成6种RGBA颜色,并将argmax置于a之上 color\u list=cm.rainbow(np.linspace(0,1,num个通道)) a=a.argmax(轴=-1)

我有一个形状为(20,20,6)的numpy数组

将numpy导入为np
将matplotlib.cm导入为cm
通道数=6
a=np.随机选择(范围(100),(20,20,个通道))
我想得到一个形状为(20,20,4)的数组,20x20乘以RGBA颜色,指示
a
中的哪个值是沿最后一个轴的argmax。因此,我生成6种RGBA颜色,并将argmax置于
a
之上

color\u list=cm.rainbow(np.linspace(0,1,num个通道))
a=a.argmax(轴=-1)
现在
a
具有维度
20x20
。如何使用颜色列表将其设置为
20x20x4

这是颜色列表的外观:

[[0.5  0.   1.   1.  ]
 [0.1  0.59 0.95 1.  ]
 [0.3  0.95 0.81 1.  ]
 [0.7  0.95 0.59 1.  ]
 [1.   0.59 0.31 1.  ]
 [1.   0.   0.   1.  ]]

这应该是你想要的

随机导入
将numpy作为np导入
将matplotlib.cm导入为cm
#获取彩色地图
通道数=6
颜色列表=厘米彩虹(np.linspace(0,1,num个通道))
#生成数组
a=np.rand.rand(20,20,6)
a=np.argmax(a,轴=-1)
印刷品(a)
#创建新阵列
新数据=np.0((20,20,4))
对于范围(20)内的i:
对于范围(20)内的j:
#将RGBA值放入新的_数据中
颜色=颜色列表[a[i][j]]
新的_数据[i][j][:]=颜色
打印(新数据)

如果这个问题对您有帮助,请将其标记为已解决

我真的不明白你想做什么。。。矩阵/图像中的六个初始通道代表什么?通常的方法是将每个像素的颜色空间转换为RGBA,然后在循环中影响新矩阵…我想得到一张20 x 20的图片,其中每个像素颜色代表一个值0到5,argmax为“a”“沿最后一个轴。原始阵列不是图像。它是数据。它实际上是1000x1000x20左右,我有10k个这样的阵列,所以你想“展平”根据给定像素的argmax,将6个维度转换为1?@Tartempion是的。然后在20x20的新矩阵中,我希望argmax=0时使用Color1,argmax=1时使用Color2。如果我能找到什么,请给我1秒时间。。。