如何重塑numpy图像?

时间:2015-05-20 10:12:36

标签: python arrays image numpy reshape

我有一个图像为一个形状为(channels, height, width)的凹凸不平的数组我怎样才能重塑它以使其具有(height, width, channels)的形状?

3 个答案:

答案 0 :(得分:9)

我认为使用内置的numpy函数会更快。

np.rollaxis(array_name,0,3).shape

答案 1 :(得分:8)

您可以使用transpose()选择轴的顺序。在这种情况下,您需要:

In [33]: df.dropna().apply(lambda x: x['START_DATE'] + pd.offsets.MonthEnd(x['MONTHS']), axis=1)
Out[33]: 
0   2035-02-28
1   2035-02-28
2   2035-02-28
3   2035-02-28
4   2035-02-28
5   2024-12-31
6   2036-12-31
dtype: datetime64[ns]

这样就尽可能在原始数组上创建一个新视图(不会复制数据)。

答案 2 :(得分:0)

你可以这样做:

import numpy as np
newim = np.zeros((height, width, channels))
for x in xrange(channels):
    newim[:,:,x] = im[x,:,:]