网站首页 > 技术文章 正文
一、引言
Python编程语言的流行就不再赘述,其用户早已经不再拘泥于程序员群体,而是作为一种基础工具被越来越广泛的人群在使用。数组操作是Python编程最常见一种操作,下面对一维和多维数组的构建与初始化进行详细描述。
二、常规的数组构建方法
定义一个空数组:
arr = []
然后就可以通过for循环对数组进行初始化,如初始化元素值为0~9的数组:
定义一个带有初始值的数组:
arr1 = ["how", "are", "you"] #包含3个字符串元素
arr2 = [12, 23, 34, 45, 56] #包含5个整形元素
arr3 = [1.414, 2.225, 3.142] #包含3个浮点型元素
arr4 = [["姓名", "唐三"], ["性别", "男"], ["武器", "海神三叉戟"]] #包含3个元素的二维数组,其每个元素又是个一维数组
二维数组访问:
arr4[0][0], arr4[0][1], arr4[1][0], arr4[1][1], arr4[2][0], arr4[2][1]分别指向这六个信息。
arr5 = [ [["姓名", "戴沐白"], ["性别", "男"]],
[["姓名", "唐三"], ["性别", "男"]],
[["姓名", "奥斯卡"], ["性别", "男"]],
[["姓名", "马红俊"], ["性别", "男"]],
[["姓名", "小舞"], ["性别", "女"]],
[["姓名", "朱竹清"], ["性别", "女"]],
[["姓名", "宁荣荣"], ["性别", "女"]] ] #包含7个元素的三维数组,其每个元素又是个二维数组
三维数组访问:
- arr5[0][0][2] 为"戴沐白"
- arr5[4][0][2] 为"小舞"
- arr5[4][1][2] 为"女" #小舞一栏的
三、基于numpy的数组构建方法
先导入numpy:
import numpy as np
3.1 构建0填充的数组
a1 = np.zeros(5) #构建5个初始值为0.0的数组,默认是float型
a2 = np.zeros([2,3]) #构建一个2行3列的二维数组
a3 = np.zeros([2,3,4]) #构建一个2层3行4列的三维数组
3.2 构建1填充的数组
b1 = np.ones(5) #构建5个初始值为1.0的数组,默认是float型
b2 = np.ones([2,3]) #构建一个2行3列的二维数组
b3 = np.ones([2,3,4]) #构建一个2层3行4列的三维数组
3.3 构建指定数据填充的数组
c1 = np.full((5), 6) #构建5个初始值为6的数组,数据类型为指定的类型int
c2 = np.full((5), 3.14) #构建5个初始值为3.14的数组,数据类型为指定的类型float
c3 = np.full((5), "ucr") #构建5个初始值为"ucr"的数组,数据类型为指定的str
c4 = np.full((2,3), 1.75) #构建一个2行3列的二维数组
c5 = np.full((2,3,4), 3.14) #构建一个2层3行4列的三维数组
还可以通过np.empty构建数组,跟np.ones类似,只不过empty数组的元素值是无意义的数值,感觉用处不大。
四、基于for循环的数组构建方法
d1 = [0]*5 #构建5个初始值为0的数组
d2 = ["abc"]*5 #构建5个初始值为"abc"的数组
d3 = [1.2 for col in range(5)] #构建5个初始值为1.2的数组
d4 = ["love" for col in range(5)] #构建5个初始值为"love"的数组
d5 = [[0 for col in range(4)] for row in range(3)] #构建一个4列3行的二维数组
d6 = [[[0 for col in range(4)] for row in range(3)] for depth in range(2)] #构建一个4列3行2层的三维数组,0填充
最特别的,构建多维空数组,以便在每个元素中存储特定值,如点坐标:
p1 = [10.1, 0.2, 5.5] #定义point1
p2 = [10.2, 0.3, 6.6] #定义point2
d7 = [[[ [] for col in range(4)] for row in range(3)] for depth in range(2)] #构建一个4列3行2层的三维数组,空数组填充
d7[0][1][2].append(p1) #在指定位置存储坐标1
d7[0][1][3].append(p2) #在指定位置存储坐标2
猜你喜欢
- 2024-12-17 C语言实现推箱子游戏!(超简单详细)代码思路+源码分享
- 2024-12-17 学习笔记之C#基础——数组和集合 c#中数组用法
- 2024-12-17 新函数REDUCE来了!Excel中的最强辅助,太强大了
- 2024-12-17 一篇文章学会golang语法,golang简明教程快速入门
- 2024-12-17 深入理解 Golang 中的值类型和引用类型
- 2024-12-17 SpringBoot系列之数据库初始化-datasource配置方式
- 2024-12-17 C++ 创建数组和使用数组学习笔记 c++如何建立数组
- 2024-12-17 Java Map 中那些巧妙的设计 javamap的用法
- 2024-12-17 大数据开发基础之一维数组的定义、初始化及与二维数组的区别
- 2024-12-17 go语言结构体与初始化 go 结构体初始化
- 1509℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 530℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 493℃MySQL service启动脚本浅析(r12笔记第59天)
- 473℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 470℃启用MySQL查询缓存(mysql8.0查询缓存)
- 451℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 430℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 427℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)