详解Python list 与 NumPy.ndarry 切片之间的对比

yipeiwu_com7年前Python基础

详解Python list 与 NumPy.ndarry 切片之间的区别

实例代码:

# list 切片返回的是不原数据,对新数据的修改不会影响原数据
In [45]: list1 = [1, 2, 3, 4, 5] 

In [46]: list2 = list1[:3]

In [47]: list2
Out[47]: [1, 2, 3]

In [49]: list2[1] = 1999

# 原数据没变
In [50]: list1
Out[50]: [1, 2, 3, 4, 5]

In [51]: list2
Out[51]: [1, 1999, 3]



# 而 NumPy.ndarry 的切片返回的是原数据
In [52]: arr = np.array([1, 2, 3, 4, 5])

In [53]: arr
Out[53]: array([1, 2, 3, 4, 5])

In [54]: arr1 = arr[:3]

In [55]: arr1
Out[55]: array([1, 2, 3])

In [56]: arr1[0] = 989

In [57]: arr1
Out[57]: array([989,  2,  3])

# 修改了原数据
In [58]: arr
Out[58]: array([989,  2,  3,  4,  5])

# 若希望得到原数据的副本, 可以用 copy()
In [59]: arr2 = arr[:3].copy()

In [60]: arr2
Out[60]: array([989,  2,  3])

In [61]: arr2[1] = 99282

In [62]: arr2
Out[62]: array([ 989, 99282,   3])

# 原数据没被修改
In [63]: arr
Out[63]: array([989,  2,  3,  4,  5])

以上就是Python list 与 NumPy.ndarry 切片之间的区别的详解,如有疑问请留言或者到本站社区留言,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

用Python写脚本,实现完全备份和增量备份的示例

需求: 在/root/backup下面有两个文件夹dst和src。要求在周一的时候进行完全备份,其余日子进行增量备份。从src备份到dst。 思路及关键点: 建立一个文件,以字典方式记...

Python3实现的简单验证码识别功能示例

本文实例讲述了Python3实现的简单验证码识别功能。分享给大家供大家参考,具体如下: 这次的需求是自动登录某机构网站, 其验证码很具特色, 很适合做验证码识别入门demo, 先贴主要代...

Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加签验签

Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加签验签,具体代码如下所示: #!/usr/bin/env python # -*- codin...

python3下pygame如何实现显示中文

python3下pygame如何实现显示中文

这篇文章主要介绍了python3下pygame如何实现显示中文,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.先看代码: im...

从零学Python之hello world

简单的‘Hello World!' Python命令行 假设你已经安装好了Python, 那么在Linux命令行输入: 复制代码 代码如下:$python 将直接进入python。然后在...