下面将Python中的数学运算符号“+、-、*、/、//、%、**”应用于Numpy数组。
实例 1 :数组与整数的加法运算。
读者可以将上述概念应用于其他数学运算符号。
实例 2 :数组加法运算。
实例 3 :数组乘法运算。
实例 4 :数组除法运算。
Python中的关系运算符如下表所示。
读者也可以将此运算符应用于数组运算。
实例 :关系运算符应用于一维数组的运算。
Numpy数组的切片与Python的列表切片相同,概念如下:
[start : end : step]
上述start、end是索引值,此索引值可以是正值也可以是负值,下列是正值或负值的索引说明图。
切片的参数意义如下:
start : 起始索引 ,如果省略表示从0开始的所有元素。
end : 终止索引 ,如果省略表示到末端的所有元素,如果有索引则是不含此索引的元素。
step :表示每隔多少区间再读取。
此切片语法的相关应用解说如下:
arr[start:end] # 读取从索引start到(end-1)索引的列表元素 arr[:n] # 取得列表前n名 arr[:-n] # 取得列表前面,不含最后n名 arr[n:] # 取得列表索引n到最后 arr[-n:] # 取得列表后n名 arr[:] # 取得所有元素
程序实例 ch3_8.py: 数组切片的应用。
执行结果
将np.array( )函数的参数copy设为True,即copy=True,就可以复制数组。假设x1是Numpy的数组,可以使用下列方式复制数组。
x2 = np.array(x1, copy=True)
经过复制后,x2是x1的副本,当内容修改时彼此不会互相影响。
程序实例 ch3_9.py: 使用np.array( )函数复制数组数据的实例。
执行结果
上述代码第9行,当更改x2[0]内容时,x1[0]内容不会受影响。
另一种常用的复制数组的方式是使用copy( )函数,假设x1是Numpy的数组,可以使用下列方式复制数组。
x2 = x1.copy( )
经过复制后,x2是x1的副本,当内容修改时彼此不会互相影响。
程序实例 ch3_10.py: 使用copy( )函数重新设计ch3_9.py。
执行结果 与ch3_9.py相同。
在实际中常常使用copy( )函数复制一份图像,然后操作另一份图像,从而保留原始图像。