【发布时间】:2021-03-10 04:47:29
【问题描述】:
我有一个巨大的空数组 (300000,80,80),我想使用 numpy.reshape 交换它的轴。我试过numpy.rollaxis、numpy.swapaxes 和numpy.transpose。他们的工作就像一个魅力,但他们放慢了前面花哨的索引。
我也尝试过 C 或 F 顺序来创建空数组,但没有任何改变。
所以,我怎样才能使用numpy.reshape 来改变这样的轴顺序:
(300000,80,80) -> (80,80,300000) 不使用numpy.rollaxis 等。
我们将不胜感激。
这是我的代码:
patch = np.ones([3,80,80])
image = np.empty([300000,80,80], dtype='uint8', order='C')
for i in range(0,300000,3):
image[i:i+3] = patch
# if i use np.rollaxis, next fancy indexing execute too slow.
pt = ([...], [...]) #some tuple
ij = ([...], [...]) #some tuple
transformed[pt] = image[ij]
【问题讨论】:
标签: python arrays numpy optimization reshape