[英]Python np.array example
我是Python的新手。
我對以下情況感到困惑:
B = np.array([A[..., n:n+5] for n in (5*4, 5*5)])
其中A.shape = (60L, 128L, 128L)
和B.shape = (2L, 60L, 128L, 5L)
我相信它應該制作某種圖像補丁。 有人可以告訴我這是什么嗎? 該示例是在將神經網絡應用於圖像的情況下。
A的形狀告訴我A很可能是60個灰度圖像(批量大小為60)的數組,每個圖像的大小為128x128像素。
我們有: B = np.array([A[..., n:n+5] for n in (5*4, 5*5)])
。 為了更好地了解此處發生的情況,讓我們反過來解壓縮此行:
for n in (5*4, 5*5)
中for n in (20, 25)
相同。 作者可能出於某種與數據或其余代碼有關的直觀原因而選擇以這種方式編寫。 這給我們n=20
和n=25
。
A[..., n:n+5]
:與A[:, :, n:n+5]
。 這給了我們A
所有圖像的所有行,但是n:n+5
處只有5列。 然后,所得數組的形狀為(60, 128, 5)
。
n=20
給我們A[:, :, 20:25]
和n=25
給我們A[:, :, 25:30]
。 因此,這些數組中的每個數組的大小都為(60, 128, 5)
。
[A[..., n:n+5] for n in (5*4, 5*5)]
為我們提供了一個列表(感謝列表理解!),其中包含兩個元素,每個元素均為大小為numpy的數組(60, 128, 5)
。 np.array()
將此列表轉換為形狀為(2, 60, 128, 5)
np.array()
的numpy數組。
結果是B
包含每個圖像的2個補丁,每個補丁都是原始圖像的5像素列寬的子集-一個從第20列開始,第二個從第25列開始。
沒有有關網絡及其目的的進一步信息,我無法推測出這種原因。
希望這可以幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.