Python多维数组构建与初始化

liftword3周前 (12-06)技术文章12

一、引言

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

相关文章

【Python核武器】:Numpy深度攻略!(一)

NumPy - 简介NumPy 是一个 Python 包。 它代表 “Numeric Python”。 它是一个由多维数组对象和用于处理数组的例程集合组成的库。Numeric,即 NumPy 的前身,...