目录
arange()函数
进入正文之前首先介绍一下numpy中常用的一个函数:arange()函数
arange(start, end, step) -> range(start, end, step)
特点:[左闭右开]的区间,一次性产生规律的数据
示例代码:
r1 = np.arange(0,9,3)#从0开始,到9结束(不包括9),步长为3
print(r1)
执行结果:
一维数组元素的选取与修改
示例代码:
import numpy as np#导入numpy并改名np
array1 = np.arange(1,9,1)#从1开始,到9之前(不包括9),步长为1
print(array1)
#选取某个元素
a = array1[1]
#选取某些元素
b = array1[[1,3,5]]
#切片(左闭右开)
c = array1[0:6]
#修改某个元素
print(array1)
array1[0] = 10
#批量修改某些元素
array1[[1,3,5]] =20
print(array1)
array1[0:6] = 100
print(array1)
调试界面:
可知array1数组里面是一个8个数的一维数组,即array1[]=[1,2,3,4.5,6,7,8]
第6行代码选取数组中第2个元素并赋值给a
第9行代码选取数组中第2个、第4个、第6个元素并赋值给b
第12行代码对一维数组进行切片,选取数组中第1个到第6个的元素并赋值给c
第16行代码修改数组中的元素,修改数组中第1个的元素为10
第19行代码修改数组中的元素,修改数组中第2个、第4个和第6个的元素为20
第21行代码修改数组中的元素,修改数组前6个的元素为100
执行结果:
二维数组元素的选取与修改
示例代码:
import numpy as np
array1 = np.arange(24).reshape(4,6)#array数据 .reshape()
print(array1)
#选取某个元素
a = array1[1,4]#第2行第5列
#选取某行元素
b = array1[3,:] #逗号是用来分隔行和列
#选取某些行
c = array1[0:2,:]
d = array1[[0,2],:]#如果不是获取连续的行,[]
#选取某列
e = array1[:,3]
#选取某些列
f = array1[:,0:3]
g = array1[:,[0,3]]
#修改元素
#修改某个元素
array1[1,4] = 100
print(array1)
#修改某行元素
array1[3,:] = 100
print(array1)
array1[[0,2],:] = 50
print(array1)
调试界面:
第3行代码用numpy的arange函数 和 reshape方法生成一个4行6列的二维数组,这个二维数组的个数是24个。
第7、10、13、14行代码分别是用不同的方法获取数组中的元素。
第7行代码把数组array1中第2行第5列的数值赋值给a
第10行代码用逗号来分隔行和列,逗号右面的冒号表示所有的列。即把数组array1中第4行的所有元素赋值给b
第13行代码是把数组array1中的第1行和第2行的所有元素赋值给c
第14行代码是把数组array1中第1行和第3行的所有元素赋值给d
第17行代码是把数组array1中第4列的所有元素赋值给e
第20行代码是把数组array1中第1列到第3列的所有元素赋值给f,且f里面包括4个元素,是一个4行3列的二维数组
第21行代码返回一个4行2列的二维数组,把数组array1中第1列和第4列的所有元素赋值给g
第26行代码是把数组array1中第2行第5列的元素值修改为100
第30行代码是把数组array1中第4行的所有元素改为100
第32行代码是把数组array1中第1行和第3行的所有元素改为50
执行结果:
三维数组元素的选取与修改
示例代码:
import numpy as np
array1 = np.arange(48).reshape(2,4,6)
print(array1)
#选取某个元素
#首先确定选取哪一个二维数组
a = array1[1,0,0]#选取第2个二维数组的第1行第1列的元素赋值给a
#选取某行元素
b = array1[0,1,:]#选取第1个二维数组的第1行的所有元素赋值给b
#选取某些行元素
c = array1[0,1:3,:]#选取第1个二维数组的第2行和第3行的所有元素赋值给c
d = array1[0,[1,3],:]#选取第1个二维数组的第2行和第4行的所有元素赋值给d
#选取某列
e = array1[1,:,1]#选取第2个二维数组的第2列的所有元素赋值给e
#选取某些列
f = array1[1,:,1:4]#选取第2个二维数组的第2列、第3列、第4列的所有元素赋值给f,f的元素值有4个(以行为单位计算)
g = array1[1,:,[1,4]]#选取第2个二维数组的第2列和第5列的所有元素赋值给f,f的元素值有2个(以列为单位计算)
#修改
array1[1,0,0]=100#修改第2个二维数组的第1行第1列的元素为100
print(array1)
调试界面:
第2行代码利用numpy生成一个三维数组,2个4*6的二维数组组成的三维数组
(代码详解见代码行后面的注释以及下面的调试展示)
最终的调试结果:
执行结果:
xue