>>> ndarr = np.array([0, 1, 2])
>>> (lambda x: x 1) (ndarr)
array([1, 2, 3])
我看到它用應用于它的函式替換了每個元素。
但是當我對二維陣列執行此操作時:
>>> ndarr = np.array([[0, 1, 2], [3, 4, 5]])
>>> (lambda x: x[0]) (ndarr)
array([0, 1, 2])
我認為這將采用陣列的兩個元素 [0, 1, 2] 和 [3, 4, 5],將 lambda 應用于它們,得到 0 和 3,結果將是 [0, 3] . 但這會將函式應用于整個陣列。為什么?我該怎么做才能得到 [0, 3]?
uj5u.com熱心網友回復:
1正如您所注意到的,對陣列應用numpy會導致所有元素加一。但是,這并不意味著您使用numpy陣列執行的每個操作都是“映射”。在第二個示例中,只有一個嵌套串列,您選擇外部串列的第一個元素。如果您只使用常規 Python,也會發生完全相同的情況:
>>> nlist = [[0, 1, 2], [3, 4, 5]]
>>> (lambda x: x[0]) (nlist)
[0, 1, 2]
如果您想對每個嵌套陣列應用操作,您正在尋找一個映射。但是,這個問題可以用切片最容易地解決:
>>> ndarr = np.array([[0, 1, 2], [3, 4, 5]])
>>> ndarr[:,0]
array([0, 3])
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/414364.html
標籤:
