【数据分析 | Numpy】Numpy模块系列指南(一),从设计架构说起

🤵♂️ 个人主页: @AI_magician
📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。
👨💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!🐱🏍
🙋♂️声明:本人目前大学就读于大二,研究兴趣方向人工智能&硬件(虽然硬件还没开始玩,但一直很感兴趣!希望大佬带带)

摘要: 本系列旨在普及那些深度学习路上必经的核心概念,文章内容都是博主用心学习收集所写,欢迎大家三联支持!本系列会一直更新,核心概念系列会一直更新!欢迎大家订阅
该文章收录专栏
[✨— 《深入解析机器学习:从原理到应用的全面指南》 —✨]
Numpy
Numpy 在数值运算上效率优于python内置的list, 所以熟练掌握是必要的。
Numpy主要分为两个核心部分,N维数组对象 Ndarry 和 通用函数对象 Ufunc, (一个数据结构,一个操作的算法)下面是关于NumPy库的各个常用模块
| 中文名称 | 英文名称 | 介绍 | 解决场景 |
|---|---|---|---|
| 数组对象 | ndarray (N-dimensional array) | 多维数组对象,用于存储同类型的元素,支持矢量化操作和广播运算。 | 数值计算、线性代数、统计分析等 |
| 通用函数 | Universal Functions (ufunc) | 快速的元素级数组函数,对数组中的元素逐个进行操作,支持矢量化运算。 | 数值计算、数学运算、逻辑运算等 |
| 索引和切片 | Indexing and Slicing | 用于访问和修改数组中的元素,可以通过索引、切片和布尔掩码进行操作。 | 数据访问、数据修改、数据筛选等 |
| 广播 | Broadcasting | 对不同形状的数组进行自动的元素级运算,使得不同尺寸的数组可以进行计算。 | 处理形状不同的数组、矩阵运算等 |
| 线性代数 | Linear Algebra | 提供了线性代数运算的函数,如矩阵乘法、特征值分解、奇异值分解等。 | 线性代数计算、矩阵运算等 |
| 随机数 | Random Sampling (random) | 生成各种概率分布的随机数,包括均匀分布、正态分布、泊松分布等。 | 模拟实验、概率分析、随机抽样等 |
| 快速傅里叶变换 | Fast Fourier Transform (fft) | 提供了快速傅里叶变换算法,用于信号处理、图像处理和频谱分析等。 | 信号处理、频谱分析、图像处理等 |
| 文件输入输出 | File Input/Output (IO) | 读取和写入数组数据到磁盘文件,支持多种数据格式,如文本文件、二进制文件等。 | 数据存储、数据读取、数据导出等 |
| 结构化数组 | Structured Arrays | 创建和操作具有复合数据类型(结构体)的数组,可以指定字段名称和数据类型。 | 处理结构化数据、数据库操作等 |
| 掩码数组 | Masked Arrays | 在数组中使用掩码标记无效或缺失的数据,进行计算时可以自动忽略掩码元素。 | 缺失数据处理、数据过滤等 |
Ndarray
数组属性
当谈论NumPy数组的属性时,我们通常指的是数组对象本身的一些特征和元数据。下面是一些常见的NumPy数组属性及其说明,我将以Markdown表格的形式呈现给你。
| 名称 | 说明 |
|---|---|
| shape | 数组的维度,表示每个维度的大小。例如,(3, 4) 表示一个二维数组,有3行和4列。 |
| dtype | 数组元素的数据类型,例如int64、float32、bool等。 |
| ndim | 数组的维度数量,也称为数组的秩。例如,二维数组的ndim为2。 |
| size | 数组中元素的总数,等于各个维度大小的乘积。 |
| itemsize | 数组中每个元素的字节大小。例如,int64类型的元素占8个字节。 |
| nbytes | 数组中所有元素的总字节数,等于itemsize * size。 |
| real | 复数数组的实部。对于实数数组,返回数组本身。 |
| imag | 复数数组的虚部。对于实数数组,返回全零数组。 |
| flat | 返回一个迭代器,用于以扁平化方式迭代数组中的元素。 |
| strides | 表示在每个维度上需要移动多少字节来获取下一个元素。 |
| data | 数组的缓冲区,包含数组的实际元素。 |
创建数组
当使用NumPy库处理数据时,有多种方法可以创建数组。下面是一些常用的方法,并以Markdown表格的形式列出它们的名称和说明:
| 名称 | 说明 |
|---|---|
numpy.array() | 从列表、元组或其他数组对象创建一个NumPy数组。 |
numpy.zeros() | 创建一个指定形状的全零数组。 |
numpy.ones() | 创建一个指定形状的全1数组。 |
numpy.empty() | 创建一个指定形状的空数组,数组元素的值是未初始化的。 |
numpy.arange() | 根据指定的开始值、结束值和步长创建一个一维数组。 |
numpy.linspace() | 在指定的开始值和结束值之间创建一个一维数组,可以指定数组的长度。 |
numpy.logspace() | 在指定的开始值和结束值之间以对数刻度创建一个一维数组。 |
numpy.eye() | 创建一个具有对角线为1的二维数组,其他位置为0。 |
import numpy as np# numpy.array()
arr = np.array([1, 2, 3]) # 参数: 输入的列表、元组或其他数组对象# numpy.zeros()
zeros_arr = np.zeros((3, 3)) # 参数: 形状# numpy.ones()
ones_arr = np.ones((2, 2)) # 参数: 形状# numpy.empty()
empty_arr = np.empty((2, 2)) # 参数: 形状# numpy.arange()
arange_arr = np.arange(0, 10, 2) # 参数: 开始值、结束值、步长# numpy.linspace()
linspace_arr = np.linspace(0, 1, 5) # 参数: 开始值、结束值、数组长度# numpy.logspace()
logspace_arr = np.logspace(0, 3, 4) # 参数: 开始指数、结束指数、数组长度# numpy.eye()
eye_arr = np.eye(3) # 参数: 数组的大小# numpy.random.rand()
rand_arr = np.random.rand(3, 3) # 参数: 形状# numpy.random.randn()
randn_arr = np.random.randn(2, 2) # 参数: 形状# numpy.random.randint()
randint_arr = np.random.randint(0, 10, (2, 2)) # 参数: 最小值、最大值、形状# numpy.full()
full_arr = np.full((2, 2), 7) # 参数: 形状、填充值# numpy.tile()
tile_arr = np.tile([1, 2], 3) # 参数: 数组、重复次数# numpy.repeat()
repeat_arr = np.repeat([1, 2, 3], 3) # 参数: 数组、重复次数

🤞到这里,如果还有什么疑问🤞🎩欢迎私信博主问题哦,博主会尽自己能力为你解答疑惑的!🎩🥳如果对你有帮助,你的赞是对博主最大的支持!!🥳
相关文章:
【数据分析 | Numpy】Numpy模块系列指南(一),从设计架构说起
🤵♂️ 个人主页: AI_magician 📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。 👨💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!&…...
多人聊天室
多人聊天包 由于要先创建服务面板,接收客户端连接的信息,此代码使用顺序为先启动服务端,在启动客户端,服务端不用关,不然会报错。多运行几次客户端,实现单人聊天 1.创建服务面板 package yiduiy;import j…...
智慧园区可视化综合管理平台建设方案,智能化、数字化才是关键
园区作为城市的基本单元,是经济发展的重要载体。随着我国经济的快速发展,各类工业园区、办公园区等园区的规划建设也越来越多。伴随着互联网新兴技术的发展和应用,智慧园区已成为当今城市规划和社会发展的关注焦点,今天我们来介绍…...
kepler.gl部署在线说明文档
1 概述 1.1 介绍 1、Kepler.gl 是一个强大的开源地理空间分析工具,用于大规模数据集的可视化。它由 Uber 的数据可视化团队开发,并且是基于 Web 技术构建的。Kepler.gl 涉及到以下几个主要技术领域: WebGL: Kepler.gl 通过 WebGL 进行渲染…...
Java程序员,你掌握了多线程吗?
文章目录 01 多线程对于Java的意义02 为什么Java工程师必须掌握多线程03 Java多线程使用方式04 如何学好Java多线程写作末尾 摘要:互联网的每一个角落,无论是大型电商平台的秒杀活动,社交平台的实时消息推送,还是在线视频平台的流…...
Android 11.0 长按按键切换SIM卡默认移动数据
Android 11.0 长按按键切换SIM卡默认移动数据 近来收到客户需求想要通过长按按键实现切换SIM卡默认移动数据的功能,该功能主要通过长按按键发送广播来实现,具体修改参照如下: 首先创建广播,具体修改参照如下: /vend…...
Kafka集群调优+能力探底
一、前言 我们需要对4个规格的kafka能力进行探底,即其可以承载的最大吞吐;4个规格对应的单节点的配置如下: 标准版: 2C4G 铂金版: 4C8G 专业版: 8C16G 企业版: 16C32G 另外,一般…...
netcore swagger 错误 Failed to load API definition
后端接口报错如下: 前端nswag报错如下: 根据网上查询到的资料说明,说一般swagger这种错误都是控制器里有接口代码异常造成的,通常是接口没有加属性Attribute, 比如[HttpPost("Delete")]、[HttpGet("Del…...
UDP Socket API 的讲解,以及回显服务器客户端的实现
文章目录 UDPDatagramSocktet APIDatagramPacket API UDP 客户端服务器实现 UDP 先来认识一下 UDP 的 socket api,两个核心的类:DatagramSocket、DatagramPacket. DatagramSocktet API 是一个 socket 对象。 什么是 socket? 操作系统&…...
数据结构与算法-D7栈实现及应用
顺序栈 具有顺序表同样的存储结构,由数组定义,配合用数组下标表示的栈顶指针top完成操作 sqstack.h stack_creat stack_push stack_empty stack_full 1、判断栈是否为空 2、top--,取:data[top1] stack_top stack_clear stack_fre…...
蓝桥杯真题:分巧克力(二分法)-Java版
由题目可知,该题的最终结果具有单调性,边长越大,可分蛋糕越少 可以用二分模板的向右找: 整数二分 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;public class Main {static int n,k; //n个块蛋糕,k个学生static int N 10…...
c++面试题
1.static的使用 1)修饰局部变量:在函数内部使用static修饰局部变量,会使它成为静态局部变量。静态局部变量只会被初始化一次,且只有在第一次调用该函数时才会被初始化,之后每次调用该函数时都会保留上一次的值.从原来…...
高精度加法,减法,乘法,除法(上)(C语言)
前言 加,减,乘,除这些运算我们自然信手捏来,就拿加法来说,我们要用c语言编程算ab的和,只需让sum ab即可,可是这是局限的,我们都知道int的表示的最大值为2147483647(32位…...
C++新经典模板与泛型编程:SFINAE特性的信息萃取
用成员函数重载实现is_default_constructible 首先介绍一个C标准库提供的可变参类模板std::is_default_constructible。这个类模板的主要功能是判断一个类的对象是否能被默认构造(所谓默认构造,就是构造一个类对象时,不需要给该类的构造函数…...
java单人聊天
服务端 package 单人聊天;import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import…...
nodejs环境安装
node安装 wget https://mirrors.tuna.tsinghua.edu.cn/nodejs-release/v20.8.0/node-v20.8.0-linux-x64.tar.gz tar xf node-v20.8.0-linux-x64.tar.xz -C /usr/local/ ln -s node-v20.8.0-linux-x64 nodevim /etc/profile.d/node.sh export PATH$PATH:/usr/local/node/binnp…...
R语言进行正态分布检验
查了很多资料,还是比较模糊 Kolmogorov-Smirnov检验(K-S检验)广泛用于正态性检验和其他分布的拟合检验。适用于中等到大样本。 Lilliefors检验是K-S检验的一种变体,专门为小样本设计。其通过使用更准确的临界值来提高对小样本的适…...
什么是SPA(Single Page Application)?它的优点和缺点是什么?
聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…...
由于找不到xinput1_3.dll,无法继续执行代码的多种解决方法指南,xinput1_3.dll文件修复
当玩家或用户在启动某些游戏和应用程序时,可能会遭遇到一个系统错误提示:“由于找不到xinput1_3.dll,无法继续执行代码l”。这种情况通常指出系统中DirectX组件存在问题。以下我们将介绍几种常用的解决方法,并提供详细的操作步骤。 一.找不到…...
Vue---Echarts
项目需要用echarts来做数据展示,现记录vue3引入并使用echarts的过程。 1. 使用步骤 安装 ECharts:使用 npm 或 yarn 等包管理工具安装 ECharts。 npm install echarts 在 Vue 组件中引入 ECharts:在需要使用图表的 Vue 组件中,引入…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...
【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...
让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...
【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...
【VLNs篇】07:NavRL—在动态环境中学习安全飞行
项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...
Linux 中如何提取压缩文件 ?
Linux 是一种流行的开源操作系统,它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间,使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的,要在 …...
代码规范和架构【立芯理论一】(2025.06.08)
1、代码规范的目标 代码简洁精炼、美观,可持续性好高效率高复用,可移植性好高内聚,低耦合没有冗余规范性,代码有规可循,可以看出自己当时的思考过程特殊排版,特殊语法,特殊指令,必须…...
MinIO Docker 部署:仅开放一个端口
MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...
