故事比喻:魔法書架與多維數組(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 的強大之處就在於,它能讓我們輕鬆管理和計算這些數據!
在一個神秘的圖書館裏,有一座巨大的魔法書架,它可以整齊地存放、查找、調整和計算大量的書籍。這個書架的排列方式非常特殊,就像 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 的強大之處就在於,它能讓我們輕鬆管理和計算這些數據!