numpy 基础使用
NumPy是Python中科学计算的基础包。它是一个Python库,提供多维数组对象,各种派生对象(如掩码数组和矩阵),以及用于数组快速操作的各种API,有包括数学、逻辑、形状操作、排序、选择、输入输出、离散傅立叶变换、基本线性代数,基本统计运算和随机模拟等等。
首先引入numpy库
import numpy as np
ndarray
NumPy 中定义的最重要的对象是称为 ndarray 的 N 维数组类型。 它描述相同类型的元素集合。 可以使用基于零的索引访问集合中的项目。
ndarray中的每个元素在内存中使用相同大小的块。 ndarray中的每个元素是数据类型对象的对象(称为 dtype)。
从ndarray对象提取的任何元素(通过切片)由一个数组标量类型的 Python 对象表示。 下图显示了ndarray,数据类型对象(dtype)和数组标量类型之间的关系。

ndarray常用属性:
| 属性 | 含义 |
|---|---|
ndim | 维度(轴)的个数 |
shape | 维度,轴,形状大小 |
size | 元素的总个数 |
dtype | 元素的数据类型 |
itemsize | 元素的字节大小 |
num = np.random.randn(2,3)
print(num)
print("数据类型:", type(num))
print("维度个数:", num.ndim) # 行数
print("维度大小(n,m):", num.shape)
print("元素总个数:", num.size)
print("元素的数据类型:", num.dtype)
print("元素的字节大小:", num.itemsize)

array函数
array具有以下功能:
- 将任意的序列对象转换为数组
- 支持将特定的嵌套序列转换为高维数组
- 自动推断生成的数据类型
# 将列表转为数组类型
num1 = np.array([1,2,34])
num2 = np.array([ [1,2, 34],[34, 2, 1]])
# 设置元素类型
num3 = np.array([[1,2,34],[34,2,1]
], dtype='float32')print(num1)
print(num2)
print(num3)

zeros函数
用法与array函数相似。创建全0数组,默认元素类型是浮点数类型;使用元组指定创建数组的形状。
# 创建 3行4列的全0矩阵
num = np.zeros((3,4))
print(num)

ones函数
与zeros函数一样,只不过是创建全0数组,默认元素类型是浮点数。
# 创建 3行4列的全1矩阵
num = np.ones((3,4))
print(num)

empty函数
创建一个未初始化的数组。元素为内存中不确定值。
# 创建 3行4列的全1矩阵
num = np.empty((3,4))
print(num)
arange函数
arange()类似于python的内置函数range(),通过指定开始值、终值和步长来创建表示等差数列的一维数组,返回给定间隔内的均匀间隔值,注意得到的结果数组不包含终值。


arange()函数有四个个参数,分别是start(开始值)、stop(终值)、step(步长)和dtype(数组类型)。
开始值可选,默认值是0,包含在数组中。
终止值必选,不包含在数组中。
步长可选,默认是1。
# 长度为0到9
num1 = np.arange(10)
print(num1)# 长度为0到9的偶数
num2 = np.arange(0, 10,2)
print(num2)# 长度为0到9的奇数
num3 = np.arange(1,10,2)
print(num3)

其他函数
asarray函数:类似array函数,但若转换对象为数组时,仅创 建一个引用,而array为深拷贝。ones_like函数:创建一个与指定数组相同形状的全1数组。zeros_like函数:创建一个与指定数组相同形状的全0数组。empty_like函数:创建一个与指定数组相同形状的未初始化数组。
数据类型
| Numpy 的类型 | C 的类型 | 描述 |
|---|---|---|
| np.int8 | int8_t | 字节(-128到127) |
| np.int16 | int16_t | 整数(-32768至32767) |
| np.int32 | int32_t | 整数(-2147483648至2147483647) |
| np.int64 | int64_t | 整数(-9223372036854775808至9223372036854775807) |
| np.uint8 | uint8_t | 无符号整数(0到255) |
| np.uint16 | uint16_t | 无符号整数(0到65535) |
| np.uint32 | uint32_t | 无符号整数(0到4294967295) |
| np.uint64 | uint64_t | 无符号整数(0到18446744073709551615) |
| np.intp | intptr_t | 用于索引的整数,通常与索引相同 ssize_t |
| np.uintp | uintptr_t | 整数大到足以容纳指针 |
| np.float32 | float | |
| np.float64 / np.float_ | double | 请注意,这与内置python float的精度相匹配。 |
| np.complex64 | float complex | 复数,由两个32位浮点数(实数和虚数组件)表示 |
| np.complex128 / np.complex_ | double complex | 请注意,这与内置python 复合体的精度相匹配。 |
还有许多别名等,详情看:数据类型 | NumPy
数据类型的表示
既可以用类型本身,如np.int32,也可以用类型名称字符串,例如int32,还可以用类型代码字符串,例如i4。
类型转换
使用astype方法进行数组之间的类型转换。
默认生成一个新数组。
num = np.arange(1,10,1.5)
print(num)num1 = num.astype(int)
print(num1)

数组运算
-
相同形状的数组之间的运算逐元素执行。
-
数组与标量间的运算,将计算参数传递给 数组的每一个元素。
num1 = np.array([1, 2, 3])
num2 = np.array([3, 4, 5])# 相同形状的数组之间的运算逐元素执行。
print(num1 + num2)# 数组与标量间的运算,将计算参数传递给 数组的每一个元素。
print(num1 + 100)

Python之Numpy详细教程_python numpy-CSDN博客
NumPy 介绍 | NumPy
相关文章:
numpy 基础使用
NumPy是Python中科学计算的基础包。它是一个Python库,提供多维数组对象,各种派生对象(如掩码数组和矩阵),以及用于数组快速操作的各种API,有包括数学、逻辑、形状操作、排序、选择、输入输出、离散傅立叶变…...
sqlite3编译脚本
../configure --hostarm --buildx86 CC/opt/sdk/gcc-arm-8.3-arm-armv5t-linux-gnueabi/bin/arm-armv5t-linux-gnueabi-gcc --prefix/opt/sdk/gcc-arm-8.3-arm-armv5t-linux-gnueabi/arm-armv5t-linux-gnueabi/sysroot/usr...
环形链表解析(c语言)c语言版本!自我解析(看了必会)
目录 1.判断一个表是否是环形链表! 代码如下 解析如下 2.快指针的步数和慢指针的步数有什么影响(无图解析) 3.怎么找到环形链表的入环点 代码如下 解析如下 1.判断一个表是否是环形链表! 代码如下 bool hasCycle(struct L…...
科技云报道:数智化升级,如何跨越数字世界与实体产业的鸿沟?
科技云报道原创。 数智化是当下商业环境下最大的确定性。 2022年,中国数字经济规模达50.2万亿元,占国内生产总值比重提升至41.5%,数字经济成为推动经济发展的重要引擎。从小型创业公司到跨国巨头,数字化转型在企业发展历程中彰显…...
Rt-Thread 移植6--多线程(KF32)
6.1 就绪列表 6.1.1 线程就绪优先级组 线程优先级表的索引对应的线程的优先级。 为了快速的找到线程在线程优先级表的插入和移出的位置,RT-Thread专门设计了一个线程就绪优先级组。线程就绪优先组是一个32位的整型数,每一个位对应一个优先级ÿ…...
HarmonyOS应用开发-首选项与后台通知管理
首选项 在移动互联网蓬勃发展的今天,移动应用给我们生活带来了极大的便利,这些便利的本质在于数据的互联互通。因此在应用的开发中数据存储占据了非常重要的位置,HarmonyOS应用开发也不例外。本章以HarmonyOS的首选项为例,介绍了…...
通过easyexcel导出数据到excel表格
这篇文章简单介绍一下怎么通过easyexcel做数据的导出,使用之前easyui构建的歌曲列表crud应用,添加一个导出按钮,点击的时候直接连接后端接口地址,在后端的接口完成数据的导出功能。 前端页面完整代码 let editingId; let request…...
Android---MVP 中 presenter 声明周期的管理
我们经常在 Android MVP 架构中的 Presenter 层做一些耗时操作,比如请求网络数据,然后根据请求后的结果刷新 View。但是,如果按返回结束 Activity,而 Presenter 依然在执行耗时操作。那么就有可能造成内存泄漏,严重时甚…...
Oracle中的索引碎片
索引碎片是指索引在存储空间上不连续的分布情况,它可能会影响到数据库性能和查询效率。索引碎片化主要由以下几个原因导致: 插入、更新和删除操作:当对表中的数据进行插入、更新或删除操作时,索引也需要相应地更新。这些DML操作可…...
Java必刷入门递归题×5(内附详细递归解析图)
目录 1.求N的阶乘 2.求12...N的和 3.顺序打印数字的每一位 4.求数字的每一位之和 5.求斐波拉契数列 1.求N的阶乘 (1)解析题目意思 比如求5的阶乘,符号表示就是5!;所以5!5*4*3*2*1我们下面使用简单的…...
android 闪屏图适配尺寸
不同的 Android 设备可能具有不同的屏幕尺寸和分辨率,因此最好提供不同尺寸的启动画面图像,以确保与各种设备的兼容性。 以下是 Android 启动画面图像的一些最常见尺寸: 320 x 480像素(肖像) 480 x 320像素࿰…...
正则表达式中(?s)与(?m)的区别
理论: (?m) 和 (?s) 是正则表达式中的两个模式标志,它们具有不同的作用: (?m) 多行模式标志(也称为 “multiline” 模式): 默认情况下,正则表达式将整个输入字符串视为单行多行文本中使用…...
Clickhouse学习笔记(11)—— 数据一致性
使用合并树引擎时,无论是ReplacingMergeTree还是SummingMergeTree,都只能保证数据的最终一致性,因为数据的去重、聚合等操作会在数据合并的期间进行,而合并会在后台以一个不确定的时间进行,因此无法预先计划࿱…...
【uniapp】六格验证码输入框实现
效果图 代码实现 <view><view class"tips">已发送验证码至<text class"tips-phone">{{ phoneNumber }}</text></view><view class"code-input-wrap"><input class"code-input" v-model"…...
【react hook】在react hook组件中,使用Antd Table组件,columns数据异步获取,list数据更新但没有rerender解决办法
情景描述 我们有一个react组件,显示了一个Antd Table组件,设置了一个columns变量并复制给Table的columns属性,由于我们请求的datasource来源是异步的,示例伪代码如下: const [columns, setColumns] useState([]); /…...
ChatGPT的图识别来了
前几天ChatGPT推出了Dall-E 3功能,可以根据文字和描述一段话来生成一个或者一组图。 这次又来重磅了,图识别又来了!换句话说,也即是文生图,图生文都可以实现了,一起来试试 1、解释图中的意思 ࿰…...
java Stream编程笔记
文章目录 Stream介绍什么是 Stream? Stream中间操作过滤操作(filter)映射操作(map)排序操作(sorted)截断操作(limit 和 skip) Stream 的终止操作forEach 和 peek聚合操作…...
顶顶通语音识别使用说明
介绍 顶顶通语音识别软件(asrproxy)是一个对接了多种语音识别接口的语音识别系统。可私有化部署(支持中文英文和方言等,支持一句话识别、实时流识别、多声道录音文件识别。 原理 asrproxy内嵌了阿里达摩院的开源语音识别工具包FunASR,后续我们也会使用自有的预料…...
重磅发布 OpenAI 推出用户自定义版 ChatGPT
文章目录 重磅发布 OpenAI 推出用户自定义版 ChatGPT个人简介 重磅发布 OpenAI 推出用户自定义版 ChatGPT OpenAI 首届开发者大会 (OpenAI DevDay) 于北京时间 11 月 7 日凌晨 02:00 开始,大会上宣布了一系列平台更新。其中一个重要更新是用户可以创建他们自己的自定…...
Java 幼儿园(20231111)读取 json 文件
1、功能场景 (1)多人合作开发一个功能模块时,需要调用外部接口 (2)对方接口的开发工作还没有完成,只能提供一个返回值的示例文件 json 文件。 (3)返回的 json 数据多达几百个字段。 …...
如何用GetQzonehistory一键备份QQ空间所有说说:告别数据丢失的终极指南
如何用GetQzonehistory一键备份QQ空间所有说说:告别数据丢失的终极指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 还记得那些年你在QQ空间写下的心情吗?那些…...
RAG 还是 Lucene:私有化部署客服系统的 AI 知识库架构选型捶
在之前的文章中,我们花了大量的篇幅,从记录后端pod真实ip开始说起,然后引入envoy,再解决了各种各样的需求:配置自动重载、流量劫持、sidecar自动注入,到envoy的各种能力:熔断、流控、分流、透明…...
基于Newmark法的车桥耦合动力学求解Matlab程序:不平顺车辆-无砟轨道-桥梁耦合全代码研究
车桥耦合matlab程序。 使用newmark法进行数值积分,考虑不平顺车辆-无砟轨道-桥梁耦合的动力学求解全套代码。无砟轨道-桥梁耦合动力学仿真平台—— 基于 Newmark-β 隐式积分的“车-轨-桥”一体化求解框架一、概述无砟轨道桥梁在高速列车通过时表现出强烈的多体-多尺…...
基于HACS插件实现HomeAssistant本地语音助手与DeepSeek大模型的无缝集成
1. 为什么需要本地语音助手与DeepSeek大模型集成 想象一下这样的场景:早上起床说一句"打开客厅灯",家里的灯光就自动亮起;做饭时问"红烧肉怎么做",厨房立刻响起详细的烹饪步骤;睡前说"明天7点…...
winpeas使用教程
winpeas是PEASS(Privilege Escalation Awesome Scripts SUITE,权限提升优秀脚本套件)中的Windows平台专用模块,全称为Windows Privilege Escalation Awesome Script。它是一款专为Windows系统设计的自动化权限提升扫描工具&#x…...
CISSP域3知识点 安全工程基础
🏗️ CISSP 域3安全工程基础丨把安全"建"进系统里Domain 3 安全架构与工程 OSG第十版第8章核心内容 占域3(13%总权重)30%以上,概念题场景题双高频 这一块是整个 CISSP 的理论地基,不搞透,后面很…...
VS Code 语义化代码高亮:如何为不同语法元素定制专属色彩
1. 为什么需要语义化代码高亮? 写代码就像在画一幅复杂的画,不同颜色的颜料能帮助我们快速区分画面中的各个元素。想象一下如果整幅画只用黑色线条勾勒,即使结构再清晰,看起来也会很吃力。代码阅读也是同样的道理——当所有变量、…...
Profinet协议在工业自动化中的无线通信应用解析
1. Profinet协议:工业自动化的"神经系统" 如果把工业自动化系统比作人体,那么Profinet协议就是这套系统的"神经系统"。它负责在控制器(大脑)、执行器(四肢)和传感器(感官&a…...
技术选型评估框架需求技术与团队匹配
技术选型评估框架:需求、技术与团队的精准匹配 在快速迭代的软件开发领域,技术选型直接决定项目的成败。如何从众多技术方案中选出最适合团队与业务需求的工具?关键在于构建一个科学的技术选型评估框架,确保需求、技术与团队能力…...
技术适配器中的接口转换与兼容处理
技术适配器中的接口转换与兼容处理 在现代软件开发中,系统间的集成与协作越来越普遍,但由于不同系统可能采用不同的技术栈、协议或数据格式,接口兼容性问题成为开发中的常见挑战。技术适配器作为一种中间层解决方案,通过接口转换…...
