我有以下数组:
import numpy as np
a = np.array([[2, 3, 5],
[4, 6, 7],
[1, 5, 7]])
我想将它扩展为这个数组:
b = [[2 2 2 3 3 3 5 5 5]
[2 2 2 3 3 3 5 5 5]
[2 2 2 3 3 3 5 5 5]
[4 4 4 6 6 6 7 7 7]
[4 4 4 6 6 6 7 7 7]
[4 4 4 6 6 6 7 7 7]
[1 1 1 5 5 5 7 7 7]
[1 1 1 5 5 5 7 7 7]
[1 1 1 5 5 5 7 7 7]]
所以我正在使用以下命令:
import scipy.ndimage
b = scipy.ndimage.interpolation.zoom(a, 3, order=0)
根据这个问题和答案 Resampling a numpy array representing an image。
然而,我得到的是:
b = [[2 2 3 3 3 3 5 5 5]
[2 2 3 3 3 3 5 5 5]
[4 4 6 6 6 6 7 7 7]
[4 4 6 6 6 6 7 7 7]
[4 4 6 6 6 6 7 7 7]
[4 4 6 6 6 6 7 7 7]
[1 1 5 5 5 5 7 7 7]
[1 1 5 5 5 5 7 7 7]
[1 1 5 5 5 5 7 7 7]]
我希望扩展恰好为3,或者是任何缩放因子,但目前对于数组的每个元素都不同。
有没有直接的方法来做到这一点?还是我应该手动编写一些代码来实现?
np.kron(a, np.ones((4,4,1)))
这样的东西,可选地加上.astype(np.uint8)
作为后缀,因为 kron 自动返回浮点数数组。 - chenjesu