故事比喻:魔法書架與多維數組(numpy 多維數組)


    在一個神秘的圖書館裏,有一座巨大的魔法書架,它可以整齊地存放、查找、調整和計算大量的書籍。這個書架的排列方式非常特殊,就像 numpy 的多維數組(ndarray),每一層、每一排、每一個格子都有規律可循。


    1d 數組:單層書架(numpy 的 1 維數組)


    首先,魔法書架的第一層存放著一係列書籍,它們整齊地排成一排。


    比喻:一維數組(1d array)就是一排書。


    import numpy as np


    shelf = np.array([‘哈利波特’, ‘納尼亞傳奇’, ‘指環王’])


    ? 特點:


    ? 隻有一排,沒有更複雜的結構。


    ? 你可以用索引快速找到書,比如 shelf[0] 就是 ‘哈利波特’。


    2d 數組:多層書架(numpy 的 2 維數組)


    館長覺得一排書不夠放,於是他增加了第二層書架,現在書架上有多行書,每一行都是一個類別:


    書架層 書籍1 書籍2 書籍3


    第一層(小說) 哈利波特 納尼亞傳奇 指環王


    第二層(科幻) 三體 銀河帝國 沙丘


    比喻:二維數組(2d array)就像一個有多層的書架,每一行是一個類別。


    shelves = np.array([


    [‘哈利波特’, ‘納尼亞傳奇’, ‘指環王’],


    [‘三體’, ‘銀河帝國’, ‘沙丘’]


    ])


    ? 特點:


    ? 每一行都是一類書,比如 第一行是小說,第二行是科幻。


    ? shelves[1, 0] 代表 ‘三體’,因為 [1] 代表第二層,[0] 代表第一本書。


    3d 數組:多排、多層、多書架(numpy 的 3 維數組)


    為了存放更多的書,圖書館擴建了一個新的房間,裏麵有多個這樣的書架。現在整個圖書館的結構變成這樣:


    比喻:三維數組(3d array)就像有多個書架的房間。


    library = np.array([


    [ # 第一個書架


    [‘哈利波特’, ‘納尼亞傳奇’, ‘指環王’],


    [‘三體’, ‘銀河帝國’, ‘沙丘’]


    ],


    [ # 第二個書架


    [‘時間簡史’, ‘自私的基因’, ‘黑天鵝’],


    [‘計算機科學導論’, ‘人工智能原理’, ‘數學之美’]


    ]


    ])


    ? 特點:


    ? 現在有多個獨立的書架,每個書架有多層,每層有多本書。


    ? library[1, 0, 2] 代表的是 ‘黑天鵝’:


    ? [1] 代表 第二個書架(科普 & 計算機)。


    ? [0] 代表 第一層(科普類書籍)。


    ? [2] 代表 第三本書(黑天鵝)。


    numpy 多維數組的強大之處


    1. 快速查找:就像書架上編號一樣,我們可以用索引找到任何一本書,比如 library[1, 0, 2] 直接定位到《黑天鵝》。


    2. 批量操作:如果我們想一次性把所有書架的書名都改成大寫,隻需一行代碼,而不需要手動翻書:


    library = np.char.upper(library)


    3. 強大的數學計算能力:假設書架上放的不是書,而是銷量數據,我們可以一鍵計算總銷量、平均銷量、最高銷量等,比傳統的循環處理快很多。


    總結:numpy 的多維數組就像魔法書架


    ? 1d 數組(單排書架):一排書,按序存放。


    ? 2d 數組(多層書架):有多個層,每一行是一類書。


    ? 3d 數組(多個書架):多個書架,每個書架有多層,每層有多本書。


    思考:你生活中還有哪些類似 numpy 數組的結構?比如 excel 表格、倉庫貨架、電影分類係統?numpy 的強大之處就在於,它能讓我們輕鬆管理和計算這些數據!

章節目錄

閱讀記錄

職場小聰明所有內容均來自互聯網,繁體小說網隻為原作者翟曉鷹的小說進行宣傳。歡迎各位書友支持翟曉鷹並收藏職場小聰明最新章節