购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3-4 一维数组的运算与切片

3-4-1 一维数组的四则运算

下面将Python中的数学运算符号“+、-、*、/、//、%、**”应用于Numpy数组。

实例 1 :数组与整数的加法运算。

读者可以将上述概念应用于其他数学运算符号。

实例 2 :数组加法运算。

实例 3 :数组乘法运算。

实例 4 :数组除法运算。

3-4-2 一维数组的关系运算符及运算

Python中的关系运算符如下表所示。

读者也可以将此运算符应用于数组运算。

实例 :关系运算符应用于一维数组的运算。

3-4-3 数组切片

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: 数组切片的应用。

执行结果

3-4-4 使用参数copy=True复制数据

将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]内容不会受影响。

3-4-5 使用copy( )函数复制数组

另一种常用的复制数组的方式是使用copy( )函数,假设x1是Numpy的数组,可以使用下列方式复制数组。

     x2 = x1.copy( )

经过复制后,x2是x1的副本,当内容修改时彼此不会互相影响。

程序实例 ch3_10.py: 使用copy( )函数重新设计ch3_9.py。

执行结果 与ch3_9.py相同。

在实际中常常使用copy( )函数复制一份图像,然后操作另一份图像,从而保留原始图像。 WW3F2HUOMniC6jlhV8wEgl+RO0WwrYNpwg36WXglp5nA3eEhmOwxyiwgxV70kY5H

点击中间区域
呼出菜单
上一章
目录
下一章
×

打开