python-numpy-常用函数详解
文章目录
- 一、函数详解
- np.empty(num_points)
- np.zeros(shape, dtype=float, order='C')
- np.tile(A, reps)
- np.newaxis
- numpy.stack(arrays, axis=0)
- np.roll(a, shift, axis=None)
- 二、实例
- 矩阵进行扩展三行,使得每一行都与第一行相同
- 二维数组每行减去不同的数
一、函数详解
np.empty(num_points)
用于创建一个指定大小的未初始化的数组的函数。该函数会返回一个指定大小的数组,但是数组的内容是未定义的,即数组中的元素可能是任意值。
参数说明:
- num_points:指定数组的大小,可以是一个整数或元组
import numpy as np# 创建一个大小为5的未初始化数组
arr = np.empty(5)print(arr)# 输出结果可能会是类似于以下的内容(具体数值可能不同):
[1. 2. 3. 4. 5.]
np.zeros(shape, dtype=float, order=‘C’)
NumPy中用于创建指定形状的全零数组的函数。该函数接受一个表示数组形状的元组作为参数,并返回一个对应形状且所有元素都为零的数组。
参数解释:
- shape:表示数组形状的元组,如(2, 3)表示2行3列的数组
- dtype:可选参数,指定数组的数据类型,默认为float
- order:可选参数,指定数组元素在内存中的存储顺序,'C’表示按行存储,'F’表示按列存储
import numpy as np# 创建一个3x4的全零数组
zeros_array = np.zeros((3, 4))print(zeros_array)输出结果:
array([[0., 0., 0., 0.],[0., 0., 0., 0.],[0., 0., 0., 0.]])
np.tile(A, reps)
用于在不同维度上复制数组。具体来说,np.tile(A, reps)会将数组A沿各个维度复制指定的次数,形成一个新的数组。
参数解释:
- A:要复制的数组
- reps:指定每个维度上复制的次数,可以是一个整数或一个元组。如果reps是一个整数n,则表示沿着每个维度将数组复制n次;如果reps是一个元组(m, n),则表示沿着每个维度将数组复制m次沿第一个轴,n次沿第二个轴,依此类推。
import numpy as np# 创建一个数组
arr = np.array([1, 2, 3])# 将数组沿着第一个轴复制3次
result1 = np.tile(arr, 3)print(result1)# 输出结果为:
[1 2 3 1 2 3 1 2 3]A = np.array([[1, 2], [3, 4]])
result2 = np.tile(A, (2, 3))print(result2)# 输出结果为:
array([[1, 2, 1, 2, 1, 2],[3, 4, 3, 4, 3, 4],[1, 2, 1, 2, 1, 2],[3, 4, 3, 4, 3, 4]])
np.newaxis
一种在NumPy中用于改变数组维度的常见操作
当使用np.newaxis时,它实际上是一个None对象的别名,用于增加数组的维度。通过在切片操作中使用np.newaxis,可以改变数组的维度,从而方便进行矩阵运算。
import numpy as np# 创建一个一维数组
arr = np.array([1, 2, 3, 4])# 使用np.newaxis增加一个新的轴
new_arr = arr[:, np.newaxis]print(new_arr)
print(new_arr.shape)输出结果:
array([[1],[2],[3],[4]])
(4, 1)
numpy.stack(arrays, axis=0)
用于沿着新的轴堆叠数组序列。具体来说,np.stack 可以将多个数组沿着指定的轴(axis)进行堆叠,生成一个新的数组。
参数说明:
arrays:要堆叠的数组序列,可以是多个数组组成的列表或元组。axis:指定沿着哪个轴进行堆叠。默认值为 0,表示沿着新的第一个轴进行堆叠。
import numpy as nparr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])stacked_array = np.stack((arr1, arr2))
print(stacked_array)输出结果:
[[1 2 3][4 5 6]]
np.roll(a, shift, axis=None)
用于对数组进行循环移位操作的函数。该函数可以将数组沿指定轴进行循环移位,即将数组的元素按照指定的偏移量进行重新排列。
参数说明:
- a:输入数组
- shift:循环移位的偏移量,可以是正数或负数
- axis:指定沿着哪个轴进行循环移位操作,如果不指定则将数组展平后进行移位操作
import numpy as np# 创建一个一维数组
arr = np.array([1, 2, 3, 4, 5])# 对数组进行循环右移两位
result = np.roll(arr, 2)print(result)# 输出结果为:
[4 5 1 2 3]
二、实例
矩阵进行扩展三行,使得每一行都与第一行相同
import numpy as np# 定义原始矩阵
matrix = np.array([[1, 2, 3]])# 复制第一行,扩展为3行
extended_matrix = np.tile(matrix, (3, 1))print(extended_matrix)输出结果:
[[1 2 3][1 2 3][1 2 3]]
二维数组每行减去不同的数
import numpy as np# 创建输入数组
input_array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])# 创建要减去的数组
to_subtract = np.array([1, 2, 3])# 使用广播功能实现减法操作
result = input_array - to_subtract[:, np.newaxis]print(result)输出结果为:
[[0 1 2][2 3 4][4 5 6]]
相关文章:
python-numpy-常用函数详解
文章目录 一、函数详解np.empty(num_points)np.zeros(shape, dtypefloat, orderC)np.tile(A, reps)np.newaxisnumpy.stack(arrays, axis0)np.roll(a, shift, axisNone) 二、实例矩阵进行扩展三行,使得每一行都与第一行相同二维数组每行减去不同的数 一、函数详解 n…...
UE小:基于UE5的两种Billboard material(始终朝向相机材质)
本文档展示了两种不同的效果,分别是物体完全朝向相机和物体仅Z轴朝向相机。通过下面的演示和相关代码,您可以更加直观地理解这两种效果的差异和应用场景。 1. 完全朝向相机效果 此效果下,物体将完全面向相机,不论相机在哪个角度…...
spring boot actuator 安全配置 springboot的安全性
关于springboot Actuator框架的安全配置方案: 加入security安全验证框架 方案一: 配置信息: spring:security:user:password: adminname: adminmanagement:endpoints:web:base-path: /monitorexposure:include: "*"# 排除端点e…...
macOS Sonoma如何查看隐藏文件
在使用Git进行项目版本控制时,我们可能会遇到一些隐藏文件,比如.gitkeep文件。它通常出现在Git项目的子目录中,主要作用是确保空目录也可以被跟踪。 终端命令 在尝试查看.gitkeep文件时,使用Terminal命令来显示隐藏文件 default…...
深入浅出:语言模型的原理、实战与评估
深入浅出:语言模型的原理、实战与评估 1. 引言1.1. 关于语言模型1.2. 语言模型的重要性 2. 语言模型简介2.1. 语言模型的类型2.2. 技术演进 3. 语言模型的原理3.1. 概率基础3.2. 深度学习模型 4. 语言模型的实战应用4.1. 数据准备4.2. 模型训练4.3. 应用场景 5. 语言…...
基于ssm的线上旅行信息管理系统论文
摘 要 随着旅游业的迅速发展,传统的旅行信息查询管理方式,已经无法满足用户需求,因此,结合计算机技术的优势和普及,特开发了本线上旅行信息管理系统。 本论文首先对线上旅行信息管理系统进行需求分析,从系…...
Jupyter开启远程服务器(最新版)
Jupyter Notebook 在本地进行访问时比较简单,直接在cmd命令行下输入 jupyter notebook 即可,然而notebook的作用不止于此,还可以用于远程连接服务器,这样如果你有一台服务器内存很大,但是呢你又不喜欢在linux上进行操作…...
【SpringCloud微服务实战10】DevOps自动化部署微服务项目(Jenkins+Docker+K8s)
一、什么是 DevOps DevOps 是一种重视软件开发人员(Developer)和运维人员(Operations)之间沟通与协作的文化、运动或实践,目标在于快速交付高质量的软件产品和服务。DevOps 强调自动化流程、持续集成与交付(CI/CD)、以及通过工具链、敏捷方法论和跨职能团队协作来增强软…...
DSVPN实验报告
一、分析要求 1. 配置R5为ISP,只能进行IP地址配置,所有地址均配为公有IP地址。 - 在R5上,将接口配置为公有IP地址,并确保只进行了IP地址配置。 2. R1和R5之间使用PPP的PAP认证,R5为主认证方;R2于R5之间…...
Linux:Jenkins:参数化版本回滚(6)
上几章我讲到了自动集成和部署 Linux:Jenkins全自动持续集成持续部署(4)-CSDN博客https://blog.csdn.net/w14768855/article/details/136977106 当我们觉得这个页面不行的时候,需要进行版本回滚,回滚方法我这里准备了…...
Haproxy2.8.1+Lua5.1.4部署,haproxy.cfg配置文件详解和演示
目录 一.快速安装lua和haproxy 二.配置haproxy的配置文件 三.配置haproxy的全局日志 四.测试负载均衡、监控和日志效果 五.server常用可选项 1.check 2.weight 3.backup 4.disabled 5.redirect prefix和redir 6.maxconn 六.调度算法 1.静态 2.动态 一.快速安装lu…...
GenICam-GenApi简介
EMVA 1288标准之GemICam-GenApi学习与解读 背景介绍 当前相机不仅用于传输图像,还打包了越来越多的功能。这就导致相机的编程接口越来越复杂。 GenICam的目标是为所有类型的相机提供一个通用的编程接口,无论相机使用何种接口技术,或者实现…...
如何创建纯净版Django项目并启动?——让Django更加简洁
目录 1. Django的基本目录结构 2. 创建APP 2.1 创建app 2.2 配置文件介绍 3. 迁移数据库文件 3.2 连接数据库 3.1 创建迁移文件 3.2 同步数据库 4. 纯净版Django创建 4.1 剔除APP 4.2 剔除中间件 4.3 剔除模板引擎 5. 最终 1. Django的基本目录结构 在我们创建Django项…...
蓝桥杯 2022 省A 选数异或
一种比较无脑暴力点的方法,时间复杂度是(nm)。 (注意的优先级比^高,记得加括号(a[i]^a[j])x) #include <iostream> #include <vector> #include <bits/stdc.h> // 包含一些 C 标准库中未包含的特定实现的函数的头文件 usi…...
计数器选型参数,结构原理,工艺与注意问题总结
🏡《总目录》 目录 1,概述2,工作原理2.1,触发器(Flip-Flop):2.2,计数器结构:2.3,计数操作:2.4,模式控制:2.5,扩展与级联:3,结构特点3.1,触发器3.2,加法器3.3,时钟控制电路...
Android 性能优化实例分享-内存优化 兼顾效率与性能
背景 项目上线一段时间后,回顾重要页面 保证更好用户体验及生产效率,做了内存优化和下载导出优化,具体效果如最后的一节的表格所示。 下面针对拍摄流程的两个页面 预览页 导出页优化实例进行介绍: 一.拍摄前预览页面优化 预览效果问题 存在…...
IT服务监督管理案例分析题
习题一 根据国家电网提出建设智能电网,信息化作为推进电力企业实现发展战略目标的和目标的核心保障体系,作用日益突出。这其中更需要进步推动信息运维综合监管系统的深化应用工作。 某软件股份有限公司是国内IT运维管理服务提供商,为多家电…...
【spring】AbstractApplicationContext 的refresh() 方法学习
上一篇我们一起学习了【spring】FileSystemXmlApplicationContext 类学习 AbstractApplicationContext 的refresh() 方法介绍 AbstractApplicationContext的refresh()方法仍然是整个Spring应用程序上下文初始化的核心流程入口。大体上的刷新生命周期依然保持一致。 refresh(…...
零基础10 天入门 Web3之第1天
10 天入门 Web3 Web3 是互联网的下一代,它将使人们拥有自己的数据并控制自己的在线体验。Web3 基于区块链技术,该技术为安全、透明和可信的交易提供支持。我准备做一个 10 天的学习计划,可帮助大家入门 Web3: 想要一起探讨学习的…...
【1】网络协议基础概念
【1】网络协议基础知识 1、互联网2、为什么要学习网络协议3、学习中需要搭建的环境4、客户端-服务器5、Java 的跨平台原理6、C/C的跨平台原理7、一个简单的SpringBoot项目(1) pom.xml(2) application.yml(3) NetworkStudyApp.java(4) SwaggerConfig.java(5) HelloWorldControll…...
Thermal Clad金属基板设计与成本优化实战指南
1. 电路设计基础与Thermal Clad特性解析在电子工程领域,电路板设计直接决定了最终产品的性能、可靠性和成本。作为一名有十年硬件设计经验的工程师,我深刻体会到优秀的设计需要在电气性能、热管理和机械强度之间取得平衡。Thermal Clad(热覆金…...
VSCode跨IDE代码搜索工具:原理、配置与高效开发实践
1. 项目概述:一个为多IDE开发者量身定制的代码搜索利器如果你和我一样,日常开发需要在 Visual Studio Code 和 JetBrains 系列 IDE(如 IntelliJ IDEA、PyCharm、WebStorm 等)之间频繁切换,那你一定对“代码搜索”这件事…...
专利价值评估实战:从技术保护到商业竞争的核心方法论
1. 专利资产价值评估:从“纸面权利”到“商业武器”的实战拆解在科技行业摸爬滚打十几年,我见过太多公司手握一堆专利证书,却说不清它们到底值多少钱。这感觉就像你家里藏了一箱古董,只知道它们“可能很值钱”,但具体哪…...
最优化方法和理论一轮复习
最优化方法与理论一句话本质:在一堆可选方案里,按照某个评价标准,找到最好的那个。数学形式通常写成:: 在变量x的所有可能取值中,找到让目标函数 f(x) 最小的那个 x。一、最优化到底在研究什么?…...
Java 注解底层原理、组合注解实现与 AOP 协同机制全解析
Java 注解底层原理与 AOP 协同工作机制 系统性总结 本文严格基于 Java 注解底层原理及 AOP 结合使用的核心技术论述,对知识点进行系统性梳理、重组与优化。全文遵循元注解构建组合注解 → 注解编译与运行底层机制 → 注解AOP 协同工作原理 → 实战问题与解决方案的逻…...
解决ClaudeCode频繁封号与Token不足问题转向Taotoken稳定接入
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 解决ClaudeCode频繁封号与Token不足问题转向Taotoken稳定接入 对于依赖Claude Code进行编程辅助的开发者而言,账户访问…...
基于MCP协议构建AI驱动的Upwork自动化工作流:从工具化接口到安全实践
1. 项目概述:一个连接AI与自由职业平台的智能桥梁如果你是一名自由职业者,或者正在探索如何用AI来优化你的工作流程,那么你肯定对在Upwork、Fiverr这类平台上反复刷新、筛选项目、撰写提案的繁琐过程深有体会。每天花上几个小时,只…...
从零打造你的AI图像放大神器:waifu2x-caffe完全指南
从零打造你的AI图像放大神器:waifu2x-caffe完全指南 【免费下载链接】waifu2x-caffe waifu2xのCaffe版 项目地址: https://gitcode.com/gh_mirrors/wa/waifu2x-caffe 想象一下,你珍藏多年的动漫壁纸分辨率太低,无法作为4K显示器背景&a…...
如何快速掌握TreeViewer:系统发育树可视化工具的完整指南
如何快速掌握TreeViewer:系统发育树可视化工具的完整指南 【免费下载链接】TreeViewer Cross-platform software to draw phylogenetic trees 项目地址: https://gitcode.com/gh_mirrors/tr/TreeViewer TreeViewer是一款功能强大的跨平台系统发育树可视化软件…...
模拟电路延时触发音频振荡器:DIY电子蟋蟀的原理与实现
1. 项目概述:一场源于图书馆的“电子恶作剧”这个故事始于1977年,几个高中二年级的学生,在图书馆的参考书区发现了一本出版于40年代的“宝藏”书籍。书里充满了各种能让青春期男孩兴奋不已的内容:爆炸性混合物、自燃的纸飞机、三碘…...
