网站首页 > 技术文章 正文
一、引言
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 结构体初始化
- 02-21走进git时代, 你该怎么玩?_gits
- 02-21GitHub是什么?它可不仅仅是云中的Git版本控制器
- 02-21Git常用操作总结_git基本用法
- 02-21为什么互联网巨头使用Git而放弃SVN?(含核心命令与原理)
- 02-21Git 高级用法,喜欢就拿去用_git基本用法
- 02-21Git常用命令和Git团队使用规范指南
- 02-21总结几个常用的Git命令的使用方法
- 02-21Git工作原理和常用指令_git原理详解
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)