人工智能系列-numpy(三)

news2024/10/7 18:30:07

🌈个人主页:羽晨同学 

💫个人格言:“成为自己未来的主人~”   

副本和视图

副本

副本是一个数据的完整的拷贝,如果我们对副本进行修改,它不会影响到原始数据,物理内存不再同一位置。副本一般发生在Python序列的切片操作,调用deepCopy()函数。调用ndarray的copy()函数产生一个副本。

视图

视图是数据的一个别称或者引用,通过该别称或引用亦便可访问,操作原有数据,但原有数据不会产生拷贝,如果我们对视图进行修改,它会影响到原始数据,物理内存在同一位置。

视图一般发生在numpy的切片操作返回原数据的视图,调用ndarray的view()函数产生一个视图。

赋值

简单的赋值不会创建数组对象的副本。相反,它使用原始数组的相同id()来访问它,id()返回Python对象的通用标识符,类似于C中的指针。

此外,一个数组的任何变化都反映在另一个数组上。例如:一个数组的形状改变也会改变另一个数组的形状。

import numpy as np
a=np.arange(6)
print('我们的数组是:')
print(a)
print('调用id()函数:')
print(id(a))
print('a复制给b')
b=a
print(b)
print('b具有的id()')
print(id(b))
print('修改b的形状')
b.shape=3,2
print(b)
print('a的形状也改变了')
print(a)

视图或浅拷贝

ndarray.view()方会创建一个新的数组对象,该方法创建的新数组的维数变化不会改变原始数据的维数

import numpy as np
a=np.arange(6).reshape(2,3)
print('数组a: ')
print(a)
print('创建a的视图: ')
b=a.view()
print(b)
print('两个数组的id()不相同:')
print('a的id()')
print(id(a))
print('b的id()')
print(id(b))
b.shape=3,2
print('b的形状:')
print(b)
print('a的形状:')
print(a)

而使用切片创建视图修改数据会影响到原始数组:

import numpy as np

arr=np.arange(12)
print('我们的数组: ')
print(arr)
print('创建切片:')
a=arr[3:]
b=arr[3:]
a[1]=123
b[2]=234
print(arr)
print(id(a))
print(id(b))
print(id(arr))

 副本或深拷贝

ndarray.copy()函数创建一个副本,对副本数据进行修改,不会影响到原始数据,它们物理内存不在同一位置。

import numpy as np
a=np.array([[10,10],[2,3],[4,5]])
print('数组 a')
print(a)
print('创建a的深层副本:')
b=a.copy()
print('数组b')
print(b)
print('我们能够写入b来写入a吗?')
print(b is a)
print('修改b的内容:')
b[0,0]=100
print('修改后的数组b:')
print(b)
print('a保持不变:')
print(a)

 

NumPy Matplotlib

Matplotlib是Python的绘图库,它可与NumPy一起使用,提供了一种有效的MatLab开源替代方案。

举一个画一元线性方程的简单例子:

import numpy as np
from matplotlib import pyplot as plt

x=np.arange(1,11)
y=2*x+5
plt.title("Matplotlib demo")
plt.xlabel("x axis caption")
plt.ylabel("y axis caption")
plt.plot(x,y)
plt.show()

import numpy as np
from matplotlib import pyplot as plt

x=np.arange(1,11)
y=2*x+5
plt.title("Matplotlib demo")
plt.xlabel("x axis caption")
plt.ylabel("y axis caption")
plt.plot(x,y,marker="o")
plt.show()

from matplotlib import pyplot as plt
x=[5,8,10]
y=[12,16,6]
x2=[6,9,11]
y2=[6,15,7]
plt.bar(x,y,align='center')
plt.bar(x2,y2,color='g',align='center')
plt.title("bar graph")
plt.ylabel("Y axis")
plt.xlabel("X axis")
plt.show()

from matplotlib import pyplot as plt
import numpy as np
a=np.array([22,87,5,43,56,73,55,54,11,20,51,5,79,31,27])
plt.hist(a,bins=[0,20,40,60,80,100])
plt.title("historgram")
plt.show()

 

 


import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(0,2*np.pi,400)
y=np.sin(x**2)
fig,ax=plt.subplots()
ax.plot(x,y)
ax.set_title("Simple plot")

f,(ax1,ax2)=plt.subplots(1,2,sharey=True)
ax1.plot(x,y)
ax1.set_title("sharing Y axis")
ax2.scatter(x,y)
fig,axs=plt.subplots(2,2,
subplot_kw=dict(projection="polar"))
axs[0,0].plot(x,y)
axs[1,1].scatter(x,y)
plt.show()

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1898189.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

中英双语介绍英国伦敦(London)

中文版 伦敦简介 伦敦(London)是英国的首都,也是全球最重要的金融、文化、艺术和交通中心之一。作为一座历史悠久的城市,伦敦融合了现代化的城市生活与丰富的历史遗产。以下是对伦敦的详细介绍,包括其经济状况、高等…

zed摄像头 orin域控掉帧问题

cpu性能并没有吃满,双目摄像头的帧率忽高忽低 原因是域控没有开性能模式,调成MAXN模式就行。

实在智能对话钉钉:宜搭+实在Agent,AI时代的工作方式

比起一个需求需要等产品、技术排期,越来越多的人开始追求把自己武装成「全能战士」,通过低代码工具一搭,一个高效的工作平台便产生了。 宜搭是钉钉自研的低代码应用构建平台,无论是专业开发者还是没有代码基础的业务人员&#xf…

PCL从理解到应用【03】KDTree 原理分析 | 案例分析 | 代码实现

前言 本文分析KDTree的原理,集合案例深入理解,同时提供源代码。 三个案例:K近邻搜索、半径内近邻搜索、近似最近邻搜索。方法对比,如下表所示: 特性K近邻搜索半径内近邻搜索近似最近邻搜索描述查找K个最近邻点查找指…

spdlog一个非常好用的C++日志库(五): 源码分析之线程池thread_pool

目录 1.线程池 2.thread_pool简介 3.多生产者-多消费者阻塞队列模型 3.1.阻塞与非阻塞方式插入数据 3.2.取出数据 3.3.overrun异常处理机制 3.4.其他接口 4.环形队列circular_q 5.thread pool模型 6.thread pool实现 6.1.thread_pool类接口 6.2.构造与析构 6.3.po…

pip install包出现哈希错误解决

如图,当遇到此类错误时,多半是连接不稳定导致的校验失败。我们可以在PC端,或Ubuntu通过浏览器下载.whl安装文件:直接复制报错信息中的网址到浏览器即可弹出下载窗口。

tomcat 安装和优化

tomcatat tomcat和http一样,都是用来处理动态页面的 tomcat也可以作为web服务器,开源的 php.php tomcat.jsp nginx.html tomcat使用java代码写的程序,运行的是java的web服务程序 tomcat的特点和功能: 1、servlet容器&…

【笔记】TimEP Safety Mechanisms方法论

1.TimEPM Overview 三大监控方法: Alive Supervision 实时监督Logical Supervision 逻辑监督Deadline Supervision 限时监督相关模块框图: 相关模块调用框图: 每个MCU核开启内狗(1核1狗),内狗用于监控相应核的TASK超时,超时后软reset MCU内狗时钟需要独立于OS时钟,两…

22_嵌入式微处理器

目录 嵌入式微处理器分类 嵌入式硬件结构 嵌入式微处理器的分类 典型8位微处理器 8位微处理器结构 8051单片机的硬件组成 8051单片机的引脚 时钟电路 MCS-51指令集 典型16位微处理器 16位微处理器结构 MSP430单片机硬件结构 典型32位微处理器 32位微处理器特点 A…

误删分区后的数据拯救:双管齐下恢复策略

在数字化时代,数据的价值日益凸显,而误删分区作为常见的数据安全威胁之一,常常让用户措手不及。本文将深入探讨误删分区的现象,并为您揭示两种高效的数据恢复方案,旨在帮助您在最短时间内找回失去的数据,同…

C++学习笔记二

一、常量 1.用const关键字声明常量变量 const常量变量在定义时必须进行初始化,并且不能通过赋值来改其值 const double gravity { 9.8 }; //首选在类型之前使用const int const sidesInSquare { 4 }; // “east const”风格,可以,但不是首…

小程序分包加载、独立分包、分包预加载等

一、小程序分包加载 小程序的代码通常是由许多页面、组件以及资源等组成,随着小程序功能的增加,代码量也会逐渐增加, 体积过大就会导致用户打开速度变慢,影响用户的使用体验。分包加载是一种小程序优化技术。将小程序不同功能的代…

SpringBoot整合Dubbo的快速使用教程

目录 一、什么是Dubbo? 二、SpringBoot整合Dubbo 1、父工程引入依赖 2、各个Dubbo服务子模块引入依赖 3、服务提供者 (1)启动类添加注解EnableDubbo (2)服务类添加注解DubboService (3)配置文件…

class类和style内联样式的绑定

这里的绑定其实就是v-bind的绑定,如代码所示,div后面的引号就是v-bind绑定,然后大括号将整个对象括起来,对象内先是属性,属性后接的是变量,这个变量是定义在script中的,后通过这个变量&#xff…

数据库国产化之路(一)

数据库国产化之路(一) 1、前言:适配海量数据库过程中的一些记录,备忘用 2、海量数据库基于的pg版本,查看PG_VERSION文件为9.2。 3、MySQL中的IF函数替代,一开始的方案是从网上找了个if函数,后来发现CASE WHEN其实能完成…

【c语言】轻松拿捏自定义类型

🌟🌟作者主页:ephemerals__ 🌟🌟所属专栏:C语言 目录 前言 一、结构体 1.结构体类型的定义和使用 1.1 结构体类型声明 1.2 结构体变量的创建和初始化 1.3 结构体变量成员的访问 1.4 结构体的特殊声…

[深度学习]卷积理解

单通道卷积 看这个的可视化就很好理解了 https://github.com/vdumoulin/conv_arithmetic/blob/master/README.md 多通道卷积 当输入有多个通道时,卷积核需要拥有相同的通道数. 假设输入有c个通道,那么卷积核的每个通道分别于相应的输入数据通道进行卷积,然后将得到的特征图对…

tinyshop商城学习

1、使用badboy屏幕录制工具,获得服装购物业务的结果,生成.jmx文件 2、在JMeter中新建线程组,导入.jmx文件 3、完成进入商城,登录,服装页面进入,随机选择服装,添加购物车,开始结算&…

Qt扫盲-QRect矩形描述类

QRect矩形描述总结 一、概述二、常用函数1. 移动类2. 属性函数3. 判断4. 比较计算 三、渲染三、坐标 一、概述 QRect类使用整数精度在平面中定义一个矩形。在绘图的时候经常使用,作为一个二维的参数描述类。 一个矩形主要有两个重要属性,一个是坐标&am…

6款天花板级的国产BI大盘点

以下是六款天花板级的国产BI工具的盘点,包括奥威BI、帆软BI、思迈特BI、永洪BI、观远BI和亿信华辰BI。这些工具各有其独特的优点和擅长的领域。 1. 奥威BI 优点: 无缝对接ERP系统:与金蝶、用友等全版本ERP系统无缝对接,方便用户…