首页 > 编程语言 >python numpy 深拷贝 浅拷贝

python numpy 深拷贝 浅拷贝

时间:2023-05-31 18:34:54浏览次数:38  
标签:python np print import 拷贝 copy numpy

import numpy as np
import copy

a=np.mat("1 2 3;4 5 6;7 8 9")
print(a)
b=a
b[0,0]=0
print(a)
print(b)
print("-"*10)

输出结果

[[1 2 3]
 [4 5 6]
 [7 8 9]]
[[0 2 3]
 [4 5 6]
 [7 8 9]]
[[0 2 3]
 [4 5 6]
 [7 8 9]]
----------

可以看到 直接赋值时改变 b 同时 改变 a 。

python 除了字符串,元组,数字等是值传递,其他则为引用传递。

import numpy as np
import copy

a=np.mat("1 2 3;4 5 6;7 8 9")
print(a)
b=a.copy()
b[0,0]=0
print(a)
print(b)
print("-"*10)

输出结果

[[1 2 3]
 [4 5 6]
 [7 8 9]]
[[1 2 3]
 [4 5 6]
 [7 8 9]]
[[0 2 3]
 [4 5 6]
 [7 8 9]]

numpy 的 copy 函数为深拷贝 浅拷贝为 b=a.view() 函数

import numpy as np
import copy

a=[[1,2,3],[4,5,6]]
print(a)
b=a.copy()
b[0][0]=0
print(a)
print(b)
print("-"*10)

输出结果

[[1, 2, 3], [4, 5, 6]]
[[0, 2, 3], [4, 5, 6]]
[[0, 2, 3], [4, 5, 6]]
----------

使用浅拷贝 只 拷贝最外层的列表结构,对内部依然是赋值

import numpy as np
import copy

a=[[1,2,3],[4,5,6]]
print(a)
b=a.copy()
b[0]=[0,2,3]
print(a)
print(b)
print("-"*10)

输出结果

[[1, 2, 3], [4, 5, 6]]
[[1, 2, 3], [4, 5, 6]]
[[0, 2, 3], [4, 5, 6]]
----------
import numpy as np
import copy

a=[[1,2,3],[4,5,6]]
print(a)
b=a.copy()
b[0]=[0,2,3]
b[0][0]=3
print(a)
print(b)
print("-"*10)

输出结果

[[1, 2, 3], [4, 5, 6]]
[[1, 2, 3], [4, 5, 6]]
[[3, 2, 3], [4, 5, 6]]
----------

标签:python,np,print,import,拷贝,copy,numpy
From: https://www.cnblogs.com/XUEYEYU/p/17447009.html

相关文章

  • 基于multiprocessing map实现python并行化(全局变量共享 map机制实用向分析 常见问题 p
    转载:(15条消息)基于multiprocessingmap实现python并行化(全局变量共享map机制实用向分析常见问题pandas存储数据)_goto_past的博客-CSDN博客基于multiprocessingmap实现python并行化之前从来没考虑python可以并行化,最近有一个项目需要计算100*100次的遗传算法适应度,每次计算......
  • 【python】证件照更换背景颜色
    1、介绍本文使用u2net,pillow,及backgroundremover进行照片背景的替换 2、安装pipinstallpillowpipinstallbackgroundremover 3、u2net介绍https://github.com/xuebinqin/U-2-NetCSDN镜像地址(可能不是最新)https://gitcode.net/mirrors/xuebinqin/U-2-Net?utm......
  • Python基础之函数的参数以及名称空间
    函数的参数形式参数什么是形式参数:在'函数定义阶段'括号内依次写入的变量名就叫形式参数,简称"形参" defindex(a,b,c,d,e):pass#a,b就称之为是函数的形参1、位置形参位置形参 在函数'定义阶段'括号内从'左往右依次'写入的'变量名'就是位置形参......
  • Python基础之装饰器
    装饰器1、为什么要用装饰器1.1、为程序提供扩展功能的可能性1.2、要遵循开放封闭原则1.3、禁止修改原代码,但是可以新增功能1.4、也不能修改调用方式2、什么是装饰器2.1为被装饰对象添加新功能的工具2.2、不修改被装饰对象源代码和调用方式3、装饰器的核心思想3......
  • Python之作用域
    作用域、函数对象和闭包作用域1、全局作用域内置名称空间+全局名称空间全局存货全局有效2、局部作用域局部名称空间局部存活局部有效3、global关键字作用: 声明全局变量###########################global"""在函数的内部不能直接修改外部的变量......
  • python基础15
    递归函数什么是递归函数递归就是直接或者间接调用自己的函数就是递归函数1#练习题2l=[1,[2,[3,[4,[5,[6,[7,[8]]]]]]]34defindex(l):5foriinl:6iftype(i)isint:7print(i)8else:9index(i)算法之......
  • python版本的“共轭梯度法”算法代码
    在看代码的过程中遇到了共轭梯度法这个概念,对这个算法的数学解释看过几遍,推导看过了,感觉懂了,然后过上一些日子就又忘记了,然后又看了一遍推导,然后过了一些日子也就又忘记了,最后想想这个算法的数学解释就不要再取深究了,毕竟平时也不太会用到,偶尔用到了只要保证代码会写也就OK了。 ......
  • 编译器绕过拷贝构造函数和返回值优化
    写在前面:在拷贝初始化(也就是用等号初始化,注意使用拷贝构造函数创建一个新的对象不属于拷贝初始化)过程中,编译器可以(但不是必须)跳过拷贝构造函数或者移动构造函数,直接创建对象。1stringnull_book="999";2//可以改写为3stringnull_book("999");这里面”999“隐式的转换为......
  • 使用python操作hdfs,并grep想要的数据
    代码如下:importsubprocessfordayinrange(24,30):forhinrange(0,24):filename="tls-metadata-2018-10-%02d-%02d.txt"%(day,h)cmd="hdfsdfs-text/data/2018/10/%02d/%02d/*.snappy"%(day,h)print(c......
  • python cassandra 创建space table并写入和查询数据
     fromcassandra.clusterimportClustercluster=Cluster(["10.178.209.161"])session=cluster.connect()keyspacename="demo_space"session.execute("createkeyspace%swithreplication={'class':'SimpleStrategy&......