「数据分析 - NumPy 函数与方法全集」【数据分析全栈攻略:爬虫+处理+可视化+报告】

- 第 104 篇 -
Date: 2025 - 06 - 05
Author: 郑龙浩/仟墨

NumPy 函数与方法全集

文章目录

  • NumPy 函数与方法全集
    • 1. 数组创建与初始化
      • 基础创建
      • 序列生成
      • 特殊数组
    • 2. 数组操作
      • 形状操作
      • 合并与分割
    • 3. 数学运算
      • 基础运算
      • 统计运算
    • 4. 随机数生成
      • 基础随机
      • 分布函数
    • 5. 文件IO
      • 文件读写

1. 数组创建与初始化

基础创建

创建数组

  • np.array(object, dtype=None, copy=True, order='K', subok=False, ndmin=0)

    将Python序列转换为ndarray数组,默认创建副本

    • dtype:指定数组数据类型
    • copy:是否创建副本(默认为True)
    • ndmin:指定最小维度数
np.array([1, 2, 3])  # 一维数组
np.array([[1, 2], [3, 4]])  # 二维数组
np.array([1, 2, 3], dtype=float)  # 指定float类型
  • np.asarray(a, dtype=None, order=None)

    将输入转换为数组,如果输入已经是数组且满足要求则不创建副本

    • np.array更高效,适合确保输入为数组的场景
arr = np.array([1, 2, 3])
np.asarray(arr) is arr  # True,不创建副本
np.asarray([1, 2, 3])  # 转换列表为数组

序列生成

生成数值序列

  • np.arange([start,] stop, [step,], dtype=None)

    创建等差序列数组

    • start:起始值(默认为0)
    • stop:结束值(不包含)
    • step:步长(默认为1)
np.arange(5)  # [0, 1, 2, 3, 4]
np.arange(1, 10, 2)  # [1, 3, 5, 7, 9]
np.arange(0, 1, 0.1)  # [0.0, 0.1, ..., 0.9]
np.arange(, 10, 2)  # [0, 2, 4, 6, 8]
  • np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

    创建等间隔数列

    • num:生成样本数
    • endpoint:是否包含结束值
    • retstep:是否返回步长
np.linspace(0, 1, 5)  # [0.0, 0.25, 0.5, 0.75, 1.0]
np.linspace(0, 1, 5, endpoint=False)  # [0.0, 0.2, 0.4, 0.6, 0.8]

特殊数组

创建特殊值数组

  • np.zeros(shape, dtype=float, order='C')

    创建全0数组

    • shape:数组形状(整数或元组)
    • type=float:默认为float,可以设置其他类型,如int
    • order='C' 表示数组按 行优先 存储,order='F'列优先 –> 了解即可
np.zeros(3)  # [0., 0., 0.]
np.zeros((2, 3))  # 2行3列全0数组
np.zeros((2, 3), dtype=int)  # 整数型全0数组
  • np.ones(shape, dtype=None, order='C')

    创建全1数组

    • dtype=None 时,NumPy 会使用浮点数类型 float64 作为默认类型
np.ones(4)  # [1., 1., 1., 1.]
np.ones((2, 2), dtype=bool)  # [[True, True], [True, True]]
  • np.empty(shape, dtype=float, order='C')

    创建未初始化数组

    • 内容为内存中的随机值,比zeros更快
np.empty(3)  # 内容不确定
np.empty((2, 2))  # 2x2未初始化数组

2. 数组操作

形状操作

改变数组形状

  • ndarray.reshape(shape, order='C')

    返回新形状数组,不改变原数据

    • shape:新形状,可以使用-1自动计算维度

      其中,如果列数为-1,则表示自动计算列数

    • order:'C’按行,'F’按列

arr = np.arange(1, 7) #[1, 2, 3, 4, 5, 6]
arr.reshape(2, 3)  # [[1, 2, 3], [4, 5, 6]]
arr.reshape(3, -1)  # 自动计算列数
arr.reshape(3, -1, order='C') # order='C',可写可不写
  • ndarray.resize(new_shape, refcheck=True)

    原地修改数组形状

    • 与reshape不同,会直接修改原数组
    • 新数组大于原数组时填充0,小于则截断
arr = np.array([1, 2, 3])
arr.resize(2, 2)  # [[1, 2], [3, 0]]

合并与分割

数组组合操作

  • np.concatenate((a1, a2, ...), axis=0, out=None)

    沿现有轴连接数组序列

    • axis:连接的轴向(0为行,1为列) –> 0为第一个轴(垂直方向),1为第二个轴(水平方向)
a = np.array([[1, 2],[3, 4]])
b = np.array([[5, 6],[7, 8]])
print(f'a尺寸:{a.shape}, b尺寸:{b.shape}')
print(np.concatenate((a, b)))  # [1, 2, 3, 4]
arr1 = np.concatenate((a, b), axis=0) # 按列拼接
print(f'按行拼接:\n{arr1}\n数组尺寸:{arr1.shape}\n')
arr2 = np.concatenate((a, b), axis=1) # 按行拼接
print(f'按列拼接:\n{arr2}\n数组尺寸:{arr2.shape}')#打印结果a尺寸:(2, 2), b尺寸:(2, 2)
[[1 2][3 4][5 6][7 8]]
按行拼接:
[[1 2][3 4][5 6][7 8]]
数组尺寸:(4, 2)按列拼接:
[[1 2 5 6][3 4 7 8]]
数组尺寸:(2, 4)
a尺寸:(2, 2), b尺寸:(2, 2)
[[1 2][3 4][5 6][7 8]]
按行拼接:
[[1 2][3 4][5 6][7 8]]
数组尺寸:(4, 2)按列拼接:
[[1 2 5 6][3 4 7 8]]
数组尺寸:(2, 4)
  • np.vstack(tup) / np.hstack(tup)

    垂直/水平堆叠数组

np.vstack((a, b))  # [[1, 2], [3, 4]]
np.hstack((a, b))  # [1, 2, 3, 4]

3. 数学运算

基础运算

基本数学运算

  • np.add(x1, x2, /, out=None, *, where=True)

    数组元素相加

np.add([1, 2], [3, 4])  # [4, 6]
  • np.multiply(x1, x2, /, out=None, *, where=True)

    数组元素相乘

np.multiply([1, 2], [3, 4])  # [3, 8]

统计运算

统计计算方法

  • np.sum(a, axis=None, dtype=None, out=None, keepdims=False)

    计算数组元素和

    • axis:沿指定轴计算(None表示全部元素)
arr = np.array([[1, 2], [3, 4]])
print(np.sum(arr))  # 10
print(np.sum(arr, axis=None))  # 10
print(np.sum(arr, axis=0))  # [4, 6] (列间求和)
print(np.sum(arr, axis=1))  # [4, 6] (行间求和)
  • np.mean(a, axis=None, dtype=None, out=None, keepdims=False)

    计算平均值

np.mean([1, 2, 3])  # 2.0
np.mean(arr, axis=1)  # [1.5, 3.5] (行间平均)

4. 随机数生成

基础随机

随机数生成

  • np.random.rand(d0, d1, ..., dn)

    生成[0,1)均匀分布随机数

np.random.rand()  # 单个随机数
np.random.rand(2, 3)  # 2x3随机数组
  • np.random.randint(low, high=None, size=None, dtype='l')

    生成随机整数

    • size:输出形状
np.random.randint(5)  # 0-4随机整数
np.random.randint(1, 10, size=(2, 2))  # 2x2的1-9随机数组

分布函数

概率分布随机数

  • np.random.normal(loc=0.0, scale=1.0, size=None)

    正态分布随机数

    • loc:均值
    • scale:标准差
np.random.normal(0, 1, 3)  # 3个标准正态随机数
  • np.random.uniform(low=0.0, high=1.0, size=None)

    均匀分布随机数

np.random.uniform(1, 5, 3)  # 3个1-5均匀分布数

5. 文件IO

文件读写

数组文件操作

  • np.save(file, arr, allow_pickle=True, fix_imports=True)

    保存数组为.npy文件

arr = np.array([1, 2, 3])
np.save('data.npy', arr)
  • np.load(file, mmap_mode=None, allow_pickle=False, fix_imports=True, encoding='ASCII')

    加载.npy文件

loaded_arr = np.load('data.npy')

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

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

相关文章

报表/报告组件(二)-实例与实现解释

上篇《报表/报告组件(一)-指标/属性组件设计》介绍了组件核心指标/属性设计,本文以实例介绍各个特性的实现和效果,实例是多个报告融合,显示所有的特性。 设计 指标/属性组件是报告/报表关键部分,上篇已介绍过,本节回顾…

Flutter嵌入式开发实战 ——从树莓派到智能家居控制面板,打造工业级交互终端

一、为何选择Flutter开发嵌入式设备&#xff1f; 1. 跨平台能力降维打击 特性传统方案Flutter方案开发效率需分别开发Android/Linux一套代码多端部署内存占用200MB (QtWeb引擎)<80MB (Release模式)热重载支持不支持支持 2. 工业级硬件支持实测 树莓派4B&#xff1a;1080…

[蓝桥杯]机器人塔

题目描述 X 星球的机器人表演拉拉队有两种服装&#xff0c;A 和 B。 他们这次表演的是搭机器人塔。 类似&#xff1a; A B B A B A A A B B B B B A B A B A B B A 队内的组塔规则是&#xff1a; A 只能站在 AA 或 BB 的肩上。 B 只能站在 AB 或 BA 的肩上。 你的…

语雀文档保存失败URI malformed

原因 原因未知&#xff0c;我用deekseek将回答的答案复制到语雀文档时出现了这个异常&#xff0c;在知识库里面一直保存失败 语雀文档保存失败URI malformed 解决方案 使用小记&#xff0c;将里面的内容转移到小记里&#xff0c;将小记移到知识库中即可

小明的Java面试奇遇之互联网保险系统架构与性能优化

一、文章标题 小明的Java面试奇遇之互联网保险系统架构与性能优化&#x1f680; 二、文章标签 Java,Spring Boot,MyBatis,Redis,Kafka,JVM,多线程,互联网保险,系统架构,性能优化 三、文章概述 本文模拟了程序员小明在应聘互联网保险系统开发岗位时&#xff0c;参与的一场深…

从零开始的嵌入式学习day33

网络编程及相关概念 UDP网络通信程序 UDP网络通信操作 一、网络编程及相关概念 1. 网络编程概念&#xff1a; 指通过计算机网络实现程序间通信的技术&#xff0c;涉及协议、套接字、数据传输等核心概念。常见的应用场景包括客户端-服务器模型、分布式系统、实时通信等。…

Kotlin 1. 搭建Kotlin开发环境

本实战概述旨在指导用户搭建Kotlin开发环境&#xff0c;并进行简单的编程实践。首先&#xff0c;用户需安装IntelliJ IDEA&#xff0c;并进行基本设置&#xff0c;如选择主题、调整字体和安装插件等。接着&#xff0c;创建Kotlin项目&#xff0c;设置项目名称、位置和JDK版本&a…

Mysql的B-树和B+树的区别总结

B 树也称 B- 树&#xff0c;全称为 多路平衡查找树&#xff0c;B 树是 B 树的一种变体。B 树和 B 树中的 B 是 Balanced&#xff08;平衡&#xff09;的意思。 目前大部分数据库系统及文件系统都采用 B-Tree 或其变种 BTree 作为索引结构。 B 树& B 树两者有何异同呢&…

COMSOL学习笔记-静电场仿真

最近在学习COMSOL&#xff0c;做了一个静电场仿真的例子&#xff0c;分享一下。 参考了下面的官方案例 计算电容 电容式位置传感器的边界元建模 三维模型 首先对静电测试仪进行三维建模。 Comsol静电场仿真 使用comsol进行静电场仿真&#xff0c;控制方程为泊松方程&#…

JavaScript 循环方法对比指南

JavaScript 循环方法对比指南 1. 标准 for 循环 语法&#xff1a; for (let i 0; i < arr.length; i) {console.log(arr[i]); }优点 ✅ 完全控制索引&#xff0c;适合需要精确控制遍历顺序或步长的场景。 ✅ 性能最优&#xff0c;在超大规模数据遍历时比高阶方法&#x…

【快餐点餐简易软件】佳易王快餐店点餐系统软件功能及操作教程

一、软件概述与核心优势 &#xff08;一&#xff09;试用版获取方式 资源下载路径&#xff1a;进入博主头像主页第一篇文章末尾&#xff0c;点击卡片按钮&#xff1b;或访问左上角博客主页&#xff0c;通过右侧按钮获取详细资料。 说明&#xff1a;下载文件为压缩包&#xff…

智慧园区数字孪生全链交付方案:降本增效30%,多案例实践驱动全周期交付

在智慧园区建设浪潮中&#xff0c;数字孪生技术正成为破解传统园区管理难题的核心引擎。通过构建与物理园区1:1映射的数字模型&#xff0c;实现数据集成、状态同步与智能决策&#xff0c;智慧园区数字孪生全链交付方案已在多个项目中验证其降本增效价值——某物流园区通过该方案…

从0开始学vue:Element Plus详解

一、核心架构解析二、技术实现指南三、高级特性实现四、性能优化方案五、生态扩展方案六、调试与测试七、版本演进路线 Element Plus 是专为 Vue 3 设计的桌面端 UI 组件库&#xff0c;基于 Vue 3 的 Composition API 重构&#xff0c;在保持与 Element UI 兼容性的同时&#x…

Ubuntu系统配置C++的boost库(含filesystem模块)的方法

本文介绍在具有sudo权限的Ubuntu操作系统中&#xff0c;配置C 的boost库的方法。 boost库是一个广受欢迎的C 库集合&#xff0c;提供了许多强大的功能扩展——例如其中的filesystem模块&#xff0c;可简化文件和目录操作&#xff0c;让开发者可以轻松处理跨平台的文件系统任务。…

Java集合中Stream流的使用

前言 Java 8 引入了 Stream API&#xff0c;它是一种用于处理集合&#xff08;Collection&#xff09;数据的强大工具。Stream 不是数据结构&#xff0c;而是对数据源进行操作的一种方式&#xff0c;支持声明式、函数式的操作&#xff0c;如过滤、映射、排序等。 Stream 操作…

.Net Framework 4/C# 属性和方法

一、属性的概述 属性是对实体特征的抽象&#xff0c;用于提供对类或对象的访问&#xff0c;C# 中的属性具有访问器&#xff0c;这些访问器指定在它们的值被读取或写入时需要执行的语句&#xff0c;因此属性提供了一种机制&#xff0c;用于把读取和写入对象的某些特征与一些操作…

asp.net mvc如何简化控制器逻辑

在ASP.NET MVC中&#xff0c;可以通过以下方法简化控制器逻辑&#xff1a; ASP.NET——MVC编程_aspnet mvc-CSDN博客 .NET/ASP.NET MVC Controller 控制器&#xff08;IController控制器的创建过程&#xff09; https://cloud.tencent.com/developer/article/1015115 【转载…

flask功能使用总结和完整示例

Flask 功能使用总结与完整示例 一、Flask 核心功能总结 Flask 是轻量级 Web 框架&#xff0c;核心功能包括&#xff1a; 路由系统&#xff1a;通过 app.route 装饰器定义 URL 与函数的映射。模板引擎&#xff1a;默认使用 Jinja2&#xff0c;支持动态渲染 HTML。请求处理&…

HarmonyOS应用基础阶段- 09、综合案例-仿携程旅行口碑榜

文章目录 携程-口碑榜1、banner 区域1.1 区域部分1.2 口碑榜 Logo1.3 推荐榜单1.4 评分规则1.5 底部 Line 2、选择城市和目的地2.1 区域布局2.2 选择城市2.3 口碑目的地 3、商业选项菜单4、热门项目选项4.1 区域布局4.2 热门标题4.3 选项 5、热门榜标题6、热门景点列表6.1 区域…

中小制造企业转型:低成本国产工业软件替代方案实践

在数字经济浪潮席卷全球的当下&#xff0c;制造业数字化转型已成为企业提升竞争力、实现可持续发展的必由之路。然而&#xff0c;高昂的成本与复杂的技术门槛&#xff0c;却让众多中小制造企业陷入 “不能转、不想转、不会转、不敢转” 的困局。幸运的是&#xff0c;一批具有自…