Numpy常用方法扩展

news/2025/3/12 16:39:37/文章来源:https://www.cnblogs.com/Mcoming/p/18767884

1. numpy中常用的方法

  • 获取最大值最小值的位置(索引)

    • numpy.argmax(ndarray,axis=None)
    • numpy.argmin(ndarray,axis=None)
    • 当查找的轴上有多个最大值或最小值,则会返回较小的索引
  • 创建一个全0的数组:numpy.zeros()

  • 创建一个全1的数组:numpy.ones()

  • 创建一个对角线为1的正方形数组(方阵、矩阵):numpy.eye()

# 获取最大值和最小值的位置
t = np.arange(12).reshape((3, 4))
print(t)# axis=0 表示查找每个纵轴上的最大值的索引
print(np.argmax(t, axis=0))
# axis=1 表示查找每个横轴上的最大值、最小值的索引
print(np.argmax(t, axis=1))
print(np.argmin(t, axis=1))# 创建一个全0或全1的数组
t1 = np.zeros((3, 4))
t2 = np.ones((3,4))
print("全0 全1数组")
print(t1)
print(t2)
print("*"*50)
print(np.argmax(t2, axis=1))  # 只返回每行中第一个最大值的索引
t2[0,1:3] = 2.1  # 将t2的第1行的第2、3列变为2.1
print('t2_改值后:')
print(t2)# axis=1 表示查找每个横轴上的最大值的索引
print(np.argmax(t2, axis=1))  # t2的第一行有两个 2.1,但只返回了第一个2.1的索引
# 创建一个n维单位矩阵
t3 = np.eye(3)
print("创建n维矩阵")
print(t3)# 查看每行最大的值的位置
print(np.argmax(t3, axis=1))"""
[[ 0  1  2  3][ 4  5  6  7][ 8  9 10 11]]
[2 2 2 2]
[3 3 3]
[0 0 0]
全0 全1数组
[[0. 0. 0. 0.][0. 0. 0. 0.][0. 0. 0. 0.]]
[[1. 1. 1. 1.][1. 1. 1. 1.][1. 1. 1. 1.]]
**************************************************
[0 0 0]
t2_改值后:
[[1.  2.1 2.1 1. ][1.  1.  1.  1. ][1.  1.  1.  1. ]]
[1 0 0]
创建n维矩阵
[[1. 0. 0.][0. 1. 0.][0. 0. 1.]]
[0 1 2]
"""

2. numpy生成随机数

  • 常用的有下面的1、2、3点
# 创建随机数数组
# 1 创建随机浮点数的数组
# 语法:numpy.random.random(size=None)   
# 该方法返回 [ 0.0, 1.0 ) 范围的随机浮点数。参数 size 为随机数的数量,默认为None数量为1个x = np.random.random(size=4)        # 生成4个[0.0,1.0)之间的随机数
y = np.random.random(size=(3,4))    # 生成3行4列个 [0.0,1.0)之间的随机数# 2 创建随机整数数组
# 语法:numpy.random.randint()
# 该方法有三个参数 low、high、size 三个参数。默认 high 是None,如果只有low,那范围就是 [0,low) 。如果有 high,范围就是 [low,high)x = np.random.randint(5,size=10)        # 生成10个[0,low)范围的随机整数
print(x)
y = np.random.randint(5,10,size=10)     # 生成10个[low,high)范围的整数
print(y)
z = np.random.randint(5,10,size=(2,4))   # 生成2行4列个 [low,high)范围的整数# 3 numpy.random.seed(s)  随机数种子,s是给定的种子值,当我们指定了随机种子之后,后面生成的随机数的值就不会变化了,除非再指定另一个种子值
numpy.random.seed(2)
x = np.random.randint(5,10,size=(3,4)) 
print(x)  # 下面每次打印的x和第一次打印的都一样
print(x) 
print(x) # 均匀分布, 在相同的大小范围内的出现概率是相等的
# 正态分布, 呈钟型,两头低,中间高,左右对称,即类似完整左右对称的抛物线
# 4 numpy.random.rand(d0,d1,…,dn)
# 产生一个给定形状的浮点数数组,数组中的数值范围在[0, 1)的均匀分布
print("rand")
a = np.random.rand(2, 3)
print(a)
print("*"*50)# 5 numpy.random.randn(d0,d1,…,dn)
# randn 函数返回一个或一组样本,具有标准正态分布(期望为0,方差为1)。dn 表示每个维度,返回值为指定维度的 array。(标准正态分布即半个抛物线)
x = np.random.randn()
print(x)
y = np.random.randn(2,4)
print(y)
z = np.random.randn(2,3,4)
print(z)# 6 numpy.random.normal()  指定期望和方差的正太分布
x = np.random.normal(loc=3,scale=4,size=(2,2,3))
print(x)   # 7 numpy.random.uniform(low, high, size)
# 产生一个数组,数组中的数值符合[low, high)的均匀分布
print("uniform")
d = np.random.uniform(1., 2., (2, 3))
print(d)
print("*"*50)

3. numpy中的copy和view

  • 即数组的复制和视图

  • 浅拷贝效果

    • 直接赋值:直接赋值只是创建了对原始数组的一个引用,而不是一个新的数组。因此,对赋值后的数组所做的任何更改都会影响原始数组,反之亦然

    • 视图

      • 影响‌:视图是原始数组的一个“窗口”,它不拥有自己的数据,只是原始数组的一个子集或子数组。对视图所做的任何更改都会影响原始数组,反之亦然
      • 创建‌:可以通过切片操作、布尔索引等方式创建视图。例如,b = a[1:3] 会创建一个 a 的子数组 b,这个 b 就是 a 的一个视图‌
  • 深拷贝效果

    • ndarray.copy()这个方法,此方法复制后的两个数组直接互不影响。如a = b.copy(),a、b互不影响

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Cartesia 升级 TTS 模型,可在音频中无缝填充内容;索尼 AI 游戏角色原型:结合语音与动画,与玩家实时对话丨日报

开发者朋友们大家好:这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的 技术 」、「有亮点的 产品 」、「有思考的 文章 」、「有态度的 观点 」、「有看点的 活动 」,但内容仅代表编辑…

NocoBase vs OutSystems:低代码平台,开源还是闭源?

开源 vs. 闭源,哪个低代码平台更适合你?NocoBase vs OutSystems 全面对比,揭示核心功能、成本和扩展性,帮你做出最佳选择!原文链接:https://www.nocobase.com/cn/blog/nocobase-vs-outsystems 引言 我在之前已经写过几篇产品深度对比文章,欢迎感兴趣的朋友前往阅读。Noc…

英格索兰/鑫磊/阿特拉斯空压机数据采集联网远程监控方案温湿度露点

RS132ie-A7.5(英格索兰)RS132ie-A7.5(英格素兰)XLPM175A-IID(鑫磊)GA132-8.5(阿特拉斯)GA132-8.5(阳牛)RS132ie-A7.5(英格索兰)XPM175A-IID(鑫磊)RS132ie-A7.5(英格索兰XLPHI7SA IID (套名)RS1321e-A7.5(英格系兰)XPU175A IID美号RS132ie-A7.5(大格索)RS1321e-A7.5(英格索二RS1…

SpringSecurity5(2-自定义用户信息)

Spring Security允许自定义用户信息以满足特定的认证需求。通过实现UserDetailsService接口,可以从数据库或其他存储源加载用户信息。自定义UserDetails类,提供用户名、密码、权限等信息,并结合Spring Security的AuthenticationManager进行身份验证。这样可以灵活地实现复杂…

No.60 Vue---事件处理

一、事件处理 1.1 监听事件(添加事件)我们可以使用 v-on 指令 (通常缩写为 @ 符号)来监听 DOM 事件,并在触发事件时执行一些JavaScript。用法为v-on:click="methodName”或使用快捷方式 @click="methodName”.<template><div><button v-on:click=&…

基于TPM的远程认证之一(TCG文档-验证篇)

PCR值验证 在PCR值足够静态或者验证者有证明者的PCR标准值的情况下,可以使用PCR值验证的方式验证平台的可信度。在PCR复合验证中,这种方法要求验证者拥有一个固定的断言PCR复合值列表,这样证明者就只发送报价(带有PCR值的哈希值),而不必发送完整的PCR值或事件日志。或者,…

day:19 html实战2

一、链接标签 1、定义: 从一个网页指向另一个网页的目的地,这个目标可以是一个网页,也可以图片,一个文件,一个网站等 2、链接的类型 a、生成信廉基覆盖源链接 b、新开一个窗口 c、图片链接 d、死链接 3、链接操作代码:链接标签百度(覆盖原有窗口) 京东(另开一个窗口)死…

数据采集仪 传感器采集读数仪 兼容多类型振弦、电压、电流传感器 分组存储与自动导出

数据采集仪 传感器采集读数仪 兼容多类型振弦、电压、电流传感器 分组存储与自动导出VH501TC是一款多功能手持式数据采集仪,专为单弦式振弦传感器设计,同时兼容电压、电流传感器的数据采集。该设备集成了先进的LoRA无线通信技术,可与本公司NLM系列产品无缝对接,实现远程无线…

gitlab+jenkins+harbor+k8s安装操作流程之jenkins gitlab harbor页面配置操作截图

现在文档阶段,实现的操作,开发人员下载或者上传新的代码,提交后jenkins自动构建到jenkinsworkspace目录中,构建过程中,利用build-shell的方式,把workspace中的代码目录制作成镜像,打包,并发送到harbor中,注意:在每个项目目录内,必须有dockerfile文件,才可以发布 1.…

20250227 大作业——HTML6标签设计工作日志

HTML6标签创新设计工作日志 2025.02.27——2025.02.28 高级程序设计课布置了大作业,要求如图 于是去询问 AI ,有哪些方面可以做,决定花一两天时间去了解咨询一下。得到了很多消息,就是现在HTML5所具有的一些功能可以参考这个网站,因为设计者的原因,很多功能可能我们平常不…

效率炸雷!Ethernetip转Profinet网关H+E流量计用EipScan连接预连

本期给大家带来H+E流量计与EipScan模拟软件连通案例。由于很多客户现场任务时间紧任务重的特点,在不确定所购买的稳联技术Profinet转Ethernetip网关(WL-PNS-EIPM)能否与H+E流量计正常通讯的情况下,用EipScan模拟软件先测通。下面就介绍下如何用EipScan模拟软件连通且不通过…

穿越“协议迷雾”:Modbus转Profinet与60LB伺服的传奇相遇

本研究案例深入剖析了稳联技术Modbus转Profinet网关(WL-ABC3010)在60LB系列通用伺服驱动器与PLC互联场景中的具体应用。此次应用所涉及的关键设备涵盖了西门子S7-1200PLC、Modbus转Profinet网关以及60LB系列通用伺服驱动器。借助网关对通信协议的转换功能,使得遵循MODBUS协议…