NumPy进阶(二)

2. NumPy进阶(二)

2.1 Numpy数组操作

2.1.1 添加元素

numpy.append 函数在数组的末尾添加值。 追加操作会分配整个数组,并把原来的数组复制到新数组中
注意:

  1. 插入的维度要保证所有数组的长度是相同的
  2. 如果没有指定轴,数组会被扁平处理

在这里插入图片描述

  • ndarray中 append使用方法
np.append(arr, 8) # 数组app使用方法 
""" 结果
array([1, 2, 3, 4, 5, 8])
"""
arr2 = np.random.randint(0, 10, size=(4,3))
arr2
""" 结果
array([[3, 8, 3],[1, 4, 8],[6, 9, 9],[5, 5, 2]])
"""np.append(arr2, [[1,2,3]], axis=0) # 添加一行
""" 结果
array([[3, 8, 3],[1, 4, 8],[6, 9, 9],[5, 5, 2],[1, 2, 3]])
"""data = np.ones(shape=(4,1))
display(data)
""" 结果
array([[1.],[1.],[1.],[1.]])
"""display(arr2)
"""
array([[3, 8, 3],[1, 4, 8],[6, 9, 9],[5, 5, 2]])
"""
np.append(arr2, data, axis=1) # 添加一列
"""
array([[3., 8., 3., 1.],[1., 4., 8., 1.],[6., 9., 9., 1.],[5., 5., 2., 1.]])
"""

2.1.2 插入元素

numpy.insert 函数在给定索引之前,沿给定轴在输入数组中插入值

如果未提供轴,则输入数组会被展开
在这里插入图片描述

2.1.3 删除元素

numpy.delete 函数返回从输入数组中删除指定子数组的新数组。

如果未提供轴参数,则输入数组将展开。
在这里插入图片描述

2.1.4 reshape

numpy.reshape 函数可以在不改变数据的条件下修改形状,格式如下: numpy.reshape(arr, newshape, order=‘C’)

- arr:要修改形状的数组
- newshape:整数或者整数数组,新的形状应当兼容原有形状
- order:'C' -- 按行,'F' -- 按列,'A' -- 原顺序,'k' -- 元素在内存中的出现顺序。

在这里插入图片描述

2.1.5. 数组迭代器

numpy.ndarray.flat
for循环与 flat 对比,有下例可见多维数组使用for繁琐,flat更为简洁
在这里插入图片描述

2.1.6. 数组扁平处理

numpy.ndarray.flatten() 返回一份展开的数组拷贝,对拷贝所做的修改不会影响原始数组

numpy.ravel() 展平的数组元素,返回一个展开的数组引用,修改会影响原始数组。

2.1.7. 数组翻转

numpy.transpose 对换数组的维度
在这里插入图片描述

2.2 数学函数

2.2.1 三角函数

np.sin(), np.cos(), np.tan()

接收的参数是弧度,不是角度
在这里插入图片描述

1.2.2. 舍入函数

numpy.around()

a: 数组
decimals: 舍入的小数位数。 默认值为0。 如果为负,整数将四舍五入到小数点左侧的位置

在这里插入图片描述

2.3. 算数函数

加减乘除: add(),subtract(),multiply() 和 divide()

numpy.power() 幂运算,可以做开方运算

numpy.mode() 求余运算

np.log() 自然底数的对数 np.log2(), np.log10()

2.4. Numpy 查找和排序

2.4.1. 查找索引

numpy.argmax() 和 numpy.argmin() 分别是查找最大值索引位置, 最小值索引位置

1.4.2. 条件查找

numpy.where(condition) 函数返回输入数组中满足给定条件的元素的索引, 返回索引位置

  • condition 条件 条件表达式
    在这里插入图片描述

2.4.3. 快速排序

np.sort()与ndarray.sort()都可以,但有区别:

np.sort()不改变输入
ndarray.sort()本地处理,不占用空间,但改变输入
numpy.sort() 函数返回输入数组的排序副本

1.4.4. 索引排序

numpy.argsort() 函数返回的是数组值从小到大的索引值。
在这里插入图片描述

1.4.5. 部分排序

np.partition(a,k)

有的时候我们不是对全部数据感兴趣,我们可能只对最小或最大的一部分感兴趣。

当k为正时,我们想要得到最小的k个数
当k为负时,我们想要得到最大的k个数

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

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

相关文章

教你如何玩转副业:开启编程副业新篇章

前言 在浩瀚的编程海洋中,C语言以其简洁、高效、贴近硬件的特性,成为无数程序员心中的“白月光”。作为一位程序员,如果你不仅掌握了这门语言的精髓,更渴望通过副业来挑战自我、实现价值。那么,如何用C语言开启你的副…

亚信安慧AntDB:在数据的宇宙中探索无限可能

亚信安慧AntDB数据库探索出自主可控的数据库架构,在架构层面消除应用对特定数据库的依赖。它以其稳定可靠的性能和高度可伸缩性而备受赞誉。AntDB数据库架构通过引入创新的分布式体系结构,充分利用集群资源,实现数据的高效分布和快速存取。 …

【计算机考研】408算法大题怎么练?

先说结论:基础阶段学好各个数据结构与,重点是数组、链表、树、图。然后强化阶段突破算法提 在基础阶段,并不需要过于专门地练习算法。相反,基础阶段的重点应该放在对各种数据结构原理的深入理解上。在我个人的经验中,…

HarmonyOS实战开发-如何使用 geolocation 实现获取当前位置经纬度

介绍 本示例使用 geolocation 实现获取当前位置的经纬度,然后通过 http 将经纬度作为请求参数,获取到该经纬度所在的城市。通过 AlphabetIndexer 容器组件实现按逻辑结构快速定位容器显示区域。 效果预览 使用说明 1.进入主页,点击国内热门城市,配送地址会更新为选择的城…

【Erlang】【RabbitMQ】Linux(CentOS7)安装Erlang和RabbitMQ

一、系统环境 查版本对应,CentOS-7,选择Erlang 23.3.4,RabbitMQ 3.9.16 二、操作步骤 安装 Erlang repository curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash安装 Erlang package s…

CAXA电子图版2019版 下载地址及安装教程

CAXA电子图板是一款由国内软件公司CAXA开发的专业CAD(计算机辅助设计)软件。它主要用于绘制和编辑各种类型的二维图纸和工程图纸,广泛应用于建筑、机械、电气和电子等行业。 CAXA电子图板具有以下主要功能和特点: 二维绘图&…

Godot 常用UI+布局容器简单介绍

文章目录 前言相关链接Canvasitem:画布Control:UI布局基类Container:布局容器基类AspectRatioContainer:伸缩居中布局BoxContainer:盒子布局ColorPicker:取色器 CenterContainer:不伸缩居中FlowContainer&a…

Java 那些诗一般的 数据类型 (下篇)

本篇会加入个人的所谓鱼式疯言 ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. 🤭🤭🤭可能说的不是那么严谨.但小编初心是能让更多人能接…

【RAG实践】Rerank,让大模型 RAG 更近一步

RAGRerank原理 上一篇【RAG实践】基于LlamaIndex和Qwen1.5搭建基于本地知识库的问答机器人 我们介绍了什么是RAG,以及如何基于LLaMaIndex和Qwen1.5搭建基于本地知识库的问答机器人,原理图和步骤如下: 这里面主要包括包括三个基本步骤&#…

3.1k Star的特斯拉数据伴侣神器

微信公众号:[开源日记],分享10kStart的优质开源项目。 TeslaMate 适用于你的 Tesla 的功能强大的自托管数据记录器。 用 Elixir 编写数据存储在 Postgres 数据库使用 Grafana 进行可视化和数据分析车辆数据发布到本地 MQTT Broker GitHub数据 3.1k stars121 watching458 forks…

2023一个前端人的杂谈

酒香也怕巷子深 年底提车,回河北过年,一路总是旅游的牌子,后来去满城滑雪,随拍了几张照片,才更加感受河北的魅力。 感觉仅仅是这一抹黄昏,就让这一行物超所值了,原来那句宣传语所言非虚:这么近,那么美,周末到河北,然而我认为实际的好处,可能不止如此。 作为一个出…

记录一次hss不能防护主机的问题

场景:hss的控制台显示不在防护中,其他云主机并没有这个情况。 故障发生的时间是昨天下午15点半左右,运维同事做了重启网卡的操作。service network restart 排查分析: 于是仔细的查看日志,发现报错如下&#xff1a…

SpringBoot学习之Kibana下载安装和启动(Mac版)(三十二)

一、简介 Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看存放在Elasticsearch中的数据。Kibana与Elasticsearch的交互方式是各种不同的图表、表格、地图等,直观的展示数据,从而达到高级的数据分析与可视化的目的。 …

ChatGPT与生成式AI:教育领域内新的浪潮与挑战

随着ChatGPT和其他生成式AI技术,如GPT-3.5、GPT-4的出现,我们正见证教育领域一场前所未有的变革浪潮。这些技术不仅推动了教育方式的进步,也为学习者带来了全新的机遇和挑战。 NO.1教育变革的新浪潮 生成式AI技术,特别是ChatGPT&…

FPGA(Verilog)实现按键消抖

实现按键消抖功能: 1.滤除按键按下时的噪声和松开时的噪声信号。 2.获取已消抖的按键按下的标志信号。 3.实现已消抖的按键的连续功能。 Verilog实现 模块端口 key_filter(input wire clk ,input wire rst_n ,input wire key_in , //按下按键时为0output …

[C++][C++11][六] -- [线程库]

目录 1.thread类的简单介绍2.线程对象的构造方法1.无参构造2.带参构造3.移动构造4.注意 3.thread提供的成员函数4.获取线程id5.线程函数的参数问题1.指针2.借助std::ref函数3.借助lambda表达式 6.join和detach1.join()2.detach() 7.[mutex](http://在C11中,Mutex总共…

无忧网络验证系统 getInfo SQL注入漏洞复现

0x01 产品简介 无忧网络验证是一套安全稳定高效的网络验证系统,基于统一核心的通用互联网+信息化服务解决方案,是为软件作者设计的一套完整免费的网络验证体系。可以为开发的软件增加收费授权的功能,让作者开发的软件可以进行销售、充值、登陆等操作,并且提供防破解验证功能…

c# wpf LiveCharts 饼图 简单试验

1.概要 c# wpf LiveCharts 饼图 简单试验 2.代码 <Window x:Class"WpfApp3.Window5"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://schem…

javaScript中原型链

一、原型链 js 的对象分为普通对象和函数对象。每个对象都有__proto__ 但是只有函数对象 (非箭头函数) 才有 prototype 属性。 new的过程&#xff1a; 1、创建一个空的简单 javaScript对象 2、将空对象的 __proto__连接到该函数的 prototype 3、将函数的this指向新创建的对象…

ARP寻址过程

当知道目标的IP但是不知道目标的Mac地址的时候就需要借助ARP寻址获取目标的Mac地址&#xff0c;传输层借助四元组&#xff08;源IP源端口&#xff1a;目标IP目标端口&#xff09;匹配&#xff0c;网络层借助IP匹配&#xff0c;数据链路层则根据Mac地址匹配&#xff0c;数据传输…