根据输入ndim创建具有变量ndim的numpy数组

时间:2019-04-04 01:19:07

标签: python numpy

由于某种原因,我正在写一个函数,该函数创建一个包含给定数组(通常是图像)的数组,该数组将具有等于2或3的ndim属性,我无法事先知道。我现在正在做类似的事情:

import numpy as np
def create_greater_array(im, scale):

    shape = (im.shape[0] * scale + 2, im.shape[1] * scale + 2)
    if im.ndim==3: #if image is RGB
        shape = *shape, 3
    greater_array = np.fill(shape, np.nan)
    return greater_array

我很想知道是否可以避免进行额外的if检查。实际上,我的代码实际上是一个类定义,并且做得还很多,所以我最终在类中添加了._is_RBG属性。

我在想的是,由于最后一个维度始终为3或不存在,因此它可能是自动的。

编辑:我需要在同一程序中进行检查的另一种情况。

后来我有了另一个将图像插入数组的功能:

def insert_image(im):
    big = create_greater_array(im, 2)
    if im.ndims == 2:
        big[1:im.shape[0]+1, 1:im.shape[1]+1] = im
    else:
        big[1:im.shape[0]+1, 1:im.shape[1]+1, :] = im

    return big

0 个答案:

没有答案