基于numpy中数组元素的切片复制方法

yipeiwu_com7年前Python基础

代码1:

#!/usr/bin/python


import numpy as np


arr1 = np.arange(10)
print(arr1)


slice_data = arr1[3:5]
print(slice_data)


slice_data[0] = 123


print(slice_data)
print(arr1)

类似的代码之前应用过,简单看了一下numpy中的数组切片。

程序的执行结果如下:

In [2]: %run exp01.py
[0 1 2 3 4 5 6 7 8 9]
[3 4]
[123 4]
[ 0 1 2 123 4 5 6 7 8 9]

由此得出来的结论是:切片后的变量与原始的数据共享同一数据存储。而这种特点是专门针对大数据的处理而定制的。然而,在日常的使用中总有需要对数据进行拷贝的时候,此时需要的便是显式的数据复制操作。

程序修改如下:

#!/usr/bin/python


import numpy as np


arr1 = np.arange(10)
print(arr1)


slice_data = arr1[3:5].copy()
print(slice_data)


slice_data[0] = 123


print(slice_data)
print(arr1)

程序的执行结果如下:

In [3]: %run exp01.py
[0 1 2 3 4 5 6 7 8 9]
[3 4]
[123 4]
[0 1 2 3 4 5 6 7 8 9]

由上面的结果可以看出,通过切片后复制操作生成的新的数据对象的操作与原始的数据是独立的。新的数据对象的变化并不会影响到原始数据的信息。

以上这篇基于numpy中数组元素的切片复制方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python常见字典内建函数用法示例

本文实例讲述了Python常见字典内建函数用法。分享给大家供大家参考,具体如下: 1、len(mapping)      &n...

浅谈pytorch、cuda、python的版本对齐问题

在使用深度学习模型训练的过程中,工具的准备也算是一个良好的开端吧。熟话说完事开头难,磨刀不误砍柴工,先把前期的问题搞通了,能为后期节省不少精力。 以pytorch工具为例: pytorc...

python实现动态数组的示例代码

实现一个支持动态扩容的数组并完成其增删改查 #通过python实现动态数组 """ 数组特点: 占用一段连续的内存空间,支持随机(索引)访问,且时间复杂度为O(1) 添加...

pycharm 配置远程解释器的方法

pycharm 配置远程解释器的方法

1、Pycharm -> References(进入设置界面): 2、点击 Project Interpreter: 3、点击 Add Remote 来添加远程解释器:...

Python 经典面试题 21 道【不可错过】

到底什么是Python? •Python是一种解释性语言。Python代码在运行之前不需要编译。其它解释性语言还包括PHP和Ruby。 •Python是...