2017-08-10 118 views
1

我有一個函數給了我一個具有某種形狀的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能有可能與其他形狀的數組,但代碼應該爲每個造型工作。

回答

0

爲什麼做起來很複雜,只需調用ff2和使用數組有:

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) 
+0

謝謝!可能我想的很複雜。你可以對我可以分配給lambda函數的屬性稍微介紹一下嗎?我無法發現第二個代碼中的差異。 – philmcole

+0

@philmcole我只是添加了第二種方法,以防字面意思是形狀是函數f1的一個屬性。重要的一行是我手動設置'f1.shape =(2,3)'的地方。不過,我不會推薦這種方法!如果第一種方法對你是可行的,那應該是首選方法。 – MSeifert