这个问题可能不清楚,所以我用代码来解释:
@staticmethod
def generate_data_uncertainty_heat_map(data_property, data_uncertainty, file_path):
plt.figure()
uncertainty = numpy.zeros((data_property.rows, data_property.cols, 4), 'uint8')
uncertainty[..., 0] = uncertainty[..., 1] = uncertainty[..., 2] = numpy.uint8(data_property * 255)
uncertainty[..., 3] = numpy.uint8(data_uncertainty)
fig = plt.imshow(uncertainty, extent=[0, data_property.cols, data_property.rows, 0])
plt.colorbar(fig)
plt.savefig(file_path + '.png')
plt.close()这是用两个(n,n)个ndarray来形成一个带有matploblib的RGBA图像。为此,我使用data_property参数作为RGB,使用data_property参数作为不透明度。
我基本上想知道我能不能
uncertainty[..., 0] = uncertainty[..., 1] = uncertainty[..., 2]用另一种方式来表示不确定性的数据.0或1或2值应该是numpy.uint8(data_property * 255)。
提前谢谢你。
发布于 2014-03-16 01:44:30
您可以使用data_property[..., np.newaxis]在右边添加一个新的轴。然后就可以这样完成任务:
uncertainty[..., :3] = numpy.uint8(data_property * 255)[..., np.newaxis]例如,
In [49]: x = np.arange(6).reshape(2,3)
In [50]: x
Out[50]:
array([[0, 1, 2],
[3, 4, 5]])
In [51]: y = np.zeros((2,3,4))
In [52]: y[...,:3] = x[...,np.newaxis]
In [53]: y
Out[53]:
array([[[ 0., 0., 0., 0.],
[ 1., 1., 1., 0.],
[ 2., 2., 2., 0.]],
[[ 3., 3., 3., 0.],
[ 4., 4., 4., 0.],
[ 5., 5., 5., 0.]]])
In [54]: np.allclose(y[...,0], x)
Out[54]: True
In [55]: np.allclose(y[...,1], x)
Out[55]: True
In [56]: np.allclose(y[...,2], x)
Out[56]: True发布于 2014-03-16 01:44:14
是的,只要data_property和uncertainty[..., 0]有相同的shape,你就可以。
https://stackoverflow.com/questions/22431937
复制相似问题