故事比喻:魔法書架與多維數組(NumPy多維數組)
在一個神秘的圖書館裡,有一座巨大的魔法書架,它可以整齊地存放、查詢、調整和計算大量的書籍。這個書架的排列方式非常特殊,就像NumPy的多維數組(ndarray),每一層、每一排、每一個格子都有規律可循。
1D數組:單層書架(NumPy的1維數組)
首先,魔法書架的第一層存放著一係列書籍,它們整齊地排成一排。
比喻:一維數組(1Darray)就是一排書。
importnumpyasnp
shelf=y([‘哈利波特’,‘納尼亞傳奇’,‘指環王’])
?特點:
?隻有一排,冇有更複雜的結構。
?你可以用索引快速找到書,比如shelf[0]就是‘哈利波特’。
2D數組:多層書架(NumPy的2維數組)
館長覺得一排書不夠放,於是他增加了第二層書架,現在書架上有多行書,每一行都是一個類彆:
書架層書籍1書籍2書籍3
第一層(小說)哈利波特納尼亞傳奇指環王
第二層(科幻)三體銀河帝國沙丘
比喻:二維數組(2Darray)就像一個有多層的書架,每一行是一個類彆。
shelves=y([
[‘哈利波特’,‘納尼亞傳奇’,‘指環王’],
[‘三體’,‘銀河帝國’,‘沙丘’]
])
?特點:
?每一行都是一類書,比如第一行是小說,第二行是科幻。
?shelves[1,0]代表‘三體’,因為[1]代表第二層,[0]代表第一本書。
3D數組:多排、多層、多書架(NumPy的3維數組)
為了存放更多的書,圖書館擴建了一個新的房間,裡麵有多個這樣的書架。現在整個圖書館的結構變成這樣:
比喻:三維數組(3Darray)就像有多個書架的房間。
library=y([
[#第一個書架
[‘哈利波特’,‘納尼亞傳奇’,‘指環王’],
[‘三體’,‘銀河帝國’,‘沙丘’]
],
[#第二個書架
[‘時間簡史’,‘自私的基因’,‘黑天鵝’],
[‘計算機科學導論’,‘人工智慧原理’,‘數學之美’]
]
])
?特點:
?現在有多個獨立的書架,每個書架有多層,每層有多本書。
?library[1,0,2]代表的是‘黑天鵝’:
?[1]代表第二個書架(科普&計算機)。
?[0]代表第一層(科普類書籍)。
?[2]代表第三本書(黑天鵝)。
NumPy多維數組的強大之處
1.快速查詢:就像書架上編號一樣,我們可以用索引找到任何一本書,比如library[1,0,2]直接定位到《黑天鵝》。
2.批量操作:如果我們想一次性把所有書架的書名都改成大寫,隻需一行代碼,而不需要手動翻書:
library=.upper(library)
3.強大的數學計算能力:假設書架上放的不是書,而是銷量數據,我們可以一鍵計算總銷量、平均銷量、最高銷量等,比傳統的循環處理快很多。
總結:NumPy的多維數組就像魔法書架
?1D數組(單排書架):一排書,按序存放。
?2D數組(多層書架):有多個層,每一行是一類書。
?3D數組(多個書架):多個書架,每個書架有多層,每層有多本書。
思考:你生活中還有哪些類似NumPy數組的結構?比如Excel表格、倉庫貨架、電影分類係統?NumPy的強大之處就在於,它能讓我們輕鬆管理和計算這些數據!