函数输出的形状

Shape of function output

我有一个函数可以给我一个具有特定形状的 numpy 数组,但我还不知道这个数组将是什么形状。

现在我有了另一个函数,它将这个函数作为输入。我现在如何提取有关第一个函数的 numpy 数组形状的信息,以便我可以在第二个函数中使用它?

示例:

f1 = lambda x: np.array([[1,2,3],[4,5,6]]) # 2x3
def f2(f):
    print(f.shape) # should give me (2,3) here

In: f2(f1)

问题是我想以这种方式编码,这样 f1 可能会有一个具有其他形状的数组,但代码应该适用于每种形状。

为什么搞得这么复杂,只要在f2中调用f,并在那里使用数组:

f1 = lambda x: np.array([[1,2,3],[4,5,6]]) # 2x3
def f2(f):
    arr = f(1)  # add your inputs here instead of the "1"
    print(arr.shape)

>>> f2(f1)
(2, 3)

您还可以为 lambda 函数分配一个属性,以防您不想调用它:

f1 = lambda x: np.array([[1,2,3],[4,5,6]]) # 2x3
def f2(f):
    print(f.shape)

>>> f1.shape = (2, 3)
>>> f2(f1)
(2, 3)