当前位置: 首页 > 编程笔记 >

python numpy数组复制使用实例解析

张岳
2023-03-14
本文向大家介绍python numpy数组复制使用实例解析,包括了python numpy数组复制使用实例解析的使用技巧和注意事项,需要的朋友参考一下

这篇文章主要介绍了python numpy数组复制使用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

在使用python时我们经常会处理数组,有的时候是复制有的时候不是,这里也是初学者最容易误解的地方,简单讲,可以分为下面三种情况:

不是复制的情况(No Copy at All)

import numpy as np
a = np.arange(12) #a为一个序列
b = a #没有创建新的对象
print('a的shape为:', a.shape) # 输出a的尺寸
print('b是a吗?', b is a) #ab 为同一个对象的两个名字
b.shape = 3, 4 #将b的shape改变
print('a的shape变为:', a.shape) #a的shanpe也跟着改变了

输出结果

a的shape为: (12,)
b是a吗? True
a的shape变为: (3, 4)

查看或浅复制(View or Shallow Copy)

不同的数组对象可以分型相同的数据,view方法创建一个与原来数组相同的新对象

a = np.arange(12)
c = a.view() # 建立一个和a一样的c
print('c未改变时a的shape为:', a.shape) # 输出a的尺寸
print('c是a吗?', c is a)
print('c 是以a为基础建立的吗', c.base is a)
c.shape = 3, 4
print('c改变后a的shape为:', a.shape)

输出结果:

c是a吗? False
c 是以a为基础建立的吗 True
a的shape为: (12,)
a的shape为: (12,)

深复制(Deep Copy)

这个时候d是a的复制,只是单纯的复制,两者没有一点关系

a = np.arange(12)
d = a.copy() # 建立一个和a一样的c
print('d是a吗?', d is a)
print('d是以a为基础建立的吗', d.base is a)

输出结果:

d是a吗? False
d是以a为基础建立的吗 False

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍实例解析如何正确使用Java数组,包括了实例解析如何正确使用Java数组的使用技巧和注意事项,需要的朋友参考一下 一.关于数组的特点 1.在Java中,无论使用数组或集合,都有边界检查。如果越界操作就会得到一个RuntimeException异常。 2.数组只能保存特定类型。数组可以保存原生数据类型,集合则不能。集合不以具体的类型来处理对象,它们将所有对象都按Object类型处理,集

  • 编辑:@Rohit Jain 我的Recipe类和Ingreatent类(Recipe数组保存的对象)都有toString方法和recipes对Ingreats的调用,以便以一个漂亮的小格式将其全部打印出来。当我在我的“recipeone”对象(即意大利辣香肠披萨)上调用它时,我得到的是“意大利辣香肠披萨:1.0磅面团,8.0盎司酱汁,10.0盎司奶酪”。 然后我继续制作对象ressippi并将其

  • 本文向大家介绍Java 数组复制clone方法实现详解,包括了Java 数组复制clone方法实现详解的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了Java 数组复制clone方法实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一、源码 二、运行结果 三、结果分析   1.clone复制,对于数组本身而言,它的元素是引用类型

  • 本文向大家介绍MongoDB 主从复制实例讲解,包括了MongoDB 主从复制实例讲解的使用技巧和注意事项,需要的朋友参考一下 主从复制可以用来做数据库的备份,故障恢复,读写分离。 本实验使用Mongodb 3.2版本,我们先查看一下mongod的帮助 主从复制已经是过期的功能,目前使用副本集代替。主从复制和副本集的区别,可以简单的理解成主从复制不能自动故障转移,副本集中的集群在主节点宕机后,可以

  • 我在尝试反转数组时遇到麻烦,它一直在打印这条消息,您可以帮助找出我做错了什么吗? 如果输入为: 则输出为:

  • 问题内容: 我需要复制对象的(有序的,而不是关联的)数组。我正在使用jQuery。我最初尝试 但是,自然地,这给了我一个需要数组的对象(顺便说一句,真的很喜欢jquery.extend)。 那么,复制数组的最佳方法是什么? 问题答案: 由于Array.slice()不进行深度复制,因此它不适用于多维数组: 请注意,尽管我在上面使用过,但要点只是 _ 包含指向的指针_而不是值。 同样也将导致 删除,