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

yipeiwu_com6年前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设计】。

相关文章

Django教程笔记之中间件middleware详解

Django教程笔记之中间件middleware详解

中间件介绍 中间件顾名思义,是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出。因为改变的是全局,所以需要谨慎实用,用...

Python PIL图片添加字体的例子

Python PIL图片添加字体的例子

效果 左边原图,右面添加字体后保存的图。 代码 # -*- coding: utf-8 -*- import PIL.Image as Image import PIL.Image...

Django中ORM表的创建和增删改查方法示例

Django中ORM表的创建和增删改查方法示例

前言 Django作为重量级的Python web框架,在做项目时肯定少不了与数据库打交道,编程人员对数据库的语法简单的还行,但过多的数据库语句不是编程人员的重点对象。因此用ORM来操作...

python模块和包的应用BASE_PATH使用解析

这篇文章主要介绍了python模块和包的应用BASE_PATH使用解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 python中的...

Python 实现 贪吃蛇大作战 代码分享

Python 实现 贪吃蛇大作战 代码分享

感觉游戏审核新政实施后,国内手游市场略冷清,是不是各家的新游戏都在排队等审核。媒体们除了之前竞相追捧《Pokemon Go》热闹了一把,似乎也听不到什么声音了。直到最近几天,突然听见好...