故事比喻:魔法书架与多维数组(nupy
多维数组)
在一个神秘的图书馆里,有一座巨大的魔法书架,它可以整齐地存放、查找、调整和计算大量的书籍。这个书架的排列方式非常特殊,就像
nupy
的多维数组(ndarray),每一层、每一排、每一个格子都有规律可循。
1d
数组:单层书架(nupy
的
1
维数组)
首先,魔法书架的第一层存放着一系列书籍,它们整齐地排成一排。
比喻:一维数组(1d
array)就是一排书。
iport
nupy
as
np
shelf
=
nparray([‘哈利波特’,
‘纳尼亚传奇’,
‘指环王’])
特点:
只有一排,没有更复杂的结构。
你可以用索引快速找到书,比如
shelf[0]
就是
‘哈利波特’。
2d
数组:多层书架(nupy
的
2
维数组)
馆长觉得一排书不够放,于是他增加了第二层书架,现在书架上有多行书,每一行都是一个类别:
书架层
书籍1
书籍2
书籍3
第一层(小说)
哈利波特
纳尼亚传奇
指环王
第二层(科幻)
三体
银河帝国
沙丘
比喻:二维数组(2d
array)就像一个有多层的书架,每一行是一个类别。
shelves
=
nparray([
[‘哈利波特’,
‘纳尼亚传奇’,
‘指环王’],
[‘三体’,
‘银河帝国’,
‘沙丘’]
])
特点:
每一行都是一类书,比如
第一行是小说,第二行是科幻。
shelves[1,
0]
代表
‘三体’,因为
[1]
代表第二层,[0]
代表第一本书。
3d
数组:多排、多层、多书架(nupy
的
3
维数组)
为了存放更多的书,图书馆扩建了一个新的房间,里面有多个这样的书架。现在整个图书馆的结构变成这样:
比喻:三维数组(3d
array)就像有多个书架的房间。
library
=
nparray([
[
第一个书架
[‘哈利波特’,
‘纳尼亚传奇’,
‘指环王’],
[‘三体’,
‘银河帝国’,
‘沙丘’]
],
[
第二个书架
[‘时间简史’,
‘自私的基因’,
‘黑天鹅’],
[‘计算机科学导论’,
‘人工智能原理’,
‘数学之美’]
]
])
特点:
现在有多个独立的书架,每个书架有多层,每层有多本书。
library[1,
0,
2]
代表的是
‘黑天鹅’:
[1]
代表
第二个书架(科普
&
计算机)。
[0]
代表
第一层(科普类书籍)。
[2]
代表
第三本书(黑天鹅)。
nupy
多维数组的强大之处
1
快速查找:就像书架上编号一样,我们可以用索引找到任何一本书,比如
library[1,
0,
2]
直接定位到《黑天鹅》。
2
批量操作:如果我们想一次性把所有书架的书名都改成大写,只需一行代码,而不需要手动翻书:
library
=
npcharupper(library)
3
强大的数学计算能力:假设书架上放的不是书,而是销量数据,我们可以一键计算总销量、平均销量、最高销量等,比传统的循环处理快很多。
总结:nupy
的多维数组就像魔法书架
1d
数组(单排书架):一排书,按序存放。
2d
数组(多层书架):有多个层,每一行是一类书。
3d
数组(多个书架):多个书架,每个书架有多层,每层有多本书。
思考:你生活中还有哪些类似
nupy
数组的结构?比如
excel
表格、仓库货架、电影分类系统?nupy
的强大之处就在于,它能让我们轻松管理和计算这些数据!