我想了解以下Python细分。关于设置ogrid和fillup在numpy中相应的多维数组
def upsample_filt(size):
factor = (size + 1) // 2
if size % 2 == 1:
center = factor - 1
else:
center = factor - 0.5
og = np.ogrid[:size, :size]
return (1 - abs(og[0] - center)/factor) * \
(1 - abs(og[1] - center)/factor)
根据numpy
,ogrid returns a mesh-grid ndarrys with only one dimension.I think the program want to generate
尺寸*尺寸array. Why is it be written as
OG = np.ogrid [:大小,:尺寸] Or what does
:size`意思?
作为一个测试,我设置size=4
,并且print((1 - abs(og[0] - center)/factor)*(1 - abs(og[1] - center)/factor))
,输出如下:
[[ 0.0625 0.1875 0.1875 0.0625]
[ 0.1875 0.5625 0.5625 0.1875]
[ 0.1875 0.5625 0.5625 0.1875]
[ 0.0625 0.1875 0.1875 0.0625]]
我不是很清楚怎么做(1 - abs(og[0] - center)/factor)*(1 - abs(og[1] - center)/factor)
fillup这个多维数组?
感谢您的解释。 – user297850