2.1  numpy介绍

numpy是Python中科学计算的基础包。它是一个Python库,提供多维数组对象、各种派生对象(例如掩码数组和矩阵)以及用于对数组进行快速操作的各种方法,包括数学、逻辑、形状操作、排序、选择、I/O 、离散傅里叶变换、基本线性代数、基本统计运算、随机模拟等等。

numpy的部分功能如下:

  • ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组。
  • 用于对整组数据进行快速运算的标准数学函数(无需编写循环)。
  • 用于读写磁盘数据的工具以及用于操作内存映射文件的工具。
  • 线性代数、随机数生成以及傅里叶变换功能。
  • 用于集成由C、C++、Fortran等语言编写的代码的API。

为什么需要Numpy

Python
# 原生Python列表 vs NumPy数组性能对比
import time
import numpy as np

py_list = list(range(1000000))
np_arr = np.arange(1000000)

# 计算平方和
start = time.time()
sum([x**2 for x in py_list])
print(f"Python列表耗时: {time.time()-start:.4f}s")

start = time.time()
np.sum(np_arr**2)
print(f"NumPy数组耗时: {time.time()-start:.4f}s")

输出示例

Plain Text
Python列表耗时: 0.1256s  
NumPy数组耗时: 0.0023s

安装numpy包

如果在Pycharm中加载不出来,可以通过如下命令安装

Python
C:\Users\fuxiaofeng>conda activate python-2025-conda
(python-2025-conda) C:\Users\fuxiaofeng>conda install numpy

2.1  numpy介绍

numpy是Python中科学计算的基础包。它是一个Python库,提供多维数组对象、各种派生对象(例如掩码数组和矩阵)以及用于对数组进行快速操作的各种方法,包括数学、逻辑、形状操作、排序、选择、I/O 、离散傅里叶变换、基本线性代数、基本统计运算、随机模拟等等。

numpy的部分功能如下:

  • ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组。
  • 用于对整组数据进行快速运算的标准数学函数(无需编写循环)。
  • 用于读写磁盘数据的工具以及用于操作内存映射文件的工具。
  • 线性代数、随机数生成以及傅里叶变换功能。
  • 用于集成由C、C++、Fortran等语言编写的代码的API。

为什么需要Numpy

Python
# 原生Python列表 vs NumPy数组性能对比
import time
import numpy as np

py_list = list(range(1000000))
np_arr = np.arange(1000000)

# 计算平方和
start = time.time()
sum([x**2 for x in py_list])
print(f"Python列表耗时: {time.time()-start:.4f}s")

start = time.time()
np.sum(np_arr**2)
print(f"NumPy数组耗时: {time.time()-start:.4f}s")

输出示例

Plain Text
Python列表耗时: 0.1256s  
NumPy数组耗时: 0.0023s

安装numpy

如果在Pycharm中加载不出来,可以通过如下命令安装

Python
C:\Users\fuxiaofeng>conda activate python-2025-conda
(python-2025-conda) C:\Users\fuxiaofeng>conda install numpy

2.1  numpy介绍

numpy是Python中科学计算的基础包。它是一个Python库,提供多维数组对象、各种派生对象(例如掩码数组和矩阵)以及用于对数组进行快速操作的各种方法,包括数学、逻辑、形状操作、排序、选择、I/O 、离散傅里叶变换、基本线性代数、基本统计运算、随机模拟等等。

numpy的部分功能如下:

  • ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组。
  • 用于对整组数据进行快速运算的标准数学函数(无需编写循环)。
  • 用于读写磁盘数据的工具以及用于操作内存映射文件的工具。
  • 线性代数、随机数生成以及傅里叶变换功能。
  • 用于集成由C、C++、Fortran等语言编写的代码的API。

为什么需要Numpy

Python
# 原生Python列表 vs NumPy数组性能对比
import time
import numpy as np

py_list = list(range(1000000))
np_arr = np.arange(1000000)

# 计算平方和
start = time.time()
sum([x**2 for x in py_list])
print(f"Python列表耗时: {time.time()-start:.4f}s")

start = time.time()
np.sum(np_arr**2)
print(f"NumPy数组耗时: {time.time()-start:.4f}s")

输出示例

Plain Text
Python列表耗时: 0.1256s  
NumPy数组耗时: 0.0023

darray

2.2.1 ndarray 的核心特性

  1. 多维性:支持 0 维(标量)、1 维(向量)、2 维(矩阵)及更高维数组。
  1. 同质性:所有元素类型必须一致(通过 dtype 指定)。
  1. 高效性:基于连续内存块存储,支持向量化运算。

2.2.2  ndarray的属性

核心属性(必须掌握)

(假设 arr = np.array([[1, 2], [3, 4]])

属性名称

通俗解释

使用示例

输出结果

实际用途

shape

数组的形状:行数和列数(或更高维度的尺寸)。

arr.shape

(2, 2)

查看或调整数组结构(如变形)。

ndim

维度数量:数组是几维的(1维、2维、3维等)。

arr.ndim

2

判断数组是向量、矩阵还是高维数据。

size

总元素个数:数组中所有元素的总数。

arr.size

4

快速计算元素总量。

dtype

元素类型:数组中元素的类型(整数、浮点数等)。

arr.dtype

int64(或 int32

确保计算时类型一致(如避免整数除法问题)。

  1. shape:就像问数组“长什么样”。
  • 示例:arr = np.array([[1, 2], [3, 4]]) 的 shape 是 (2, 2),表示2行2列。
  • 变形操作arr.reshape(4, 1) 会变成4行1列的数组。
  1. ndim:判断数组是“几维空间”。
  • 一维数组(向量):ndim=1,如 [1, 2, 3]
  • 二维数组(矩阵):ndim=2,如表格数据。
  • 三维数组(立体):ndim=3,如RGB图片数据。
  1. dtype:确保所有元素是“同一类型”。
  • 如果数组中有小数,dtype 会自动变成 float64(避免精度丢失)。
  • 强制指定类型:np.array([1, 2], dtype=np.float32)

Python
import numpy as np

# 创建一个3x2的二维数组
arr = np.array([[1, 2], [3, 4], [5, 6]])

print("形状 shape:", arr.shape)    # 输出 (3, 2)
print("维度 ndim:", arr.ndim)     # 输出 2
print("总元素 size:", arr.size)   # 输出 6
print("元素类型 dtype:", arr.dtype)  # 输出 int64

进阶属性(了解即可)

属性名称

通俗解释

示例代码

输出结果

应用场景

T

转置:行变列,列变行。

arr.T

[[1, 3], [2, 4]]

矩阵运算(如矩阵乘法)。

itemsize

单个元素占用的内存字节数

arr.itemsize

8int64 类型占8字节)

优化内存占用时参考。

nbytes

数组总内存占用量size * itemsize

arr.nbytes

32(4元素 × 8字节)

处理大数据时监控内存消耗。

flags

内存存储方式:是否连续存储(高级优化)。

arr.flags

C_CONTIGUOUS : True 等

高性能计算或底层内存操作。

练习题

题目 1:观察数组形状

Python
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])

  1. arr.shape 的输出是什么?  
  1. arr.ndim 的值是多少?  
  1. arr.size 的结果是什么?

答案  

  1. (2, 3)  
  1. 2(二维数组)  
  1. 6(总元素数:2行×3列=6)

题目 2:数据类型推断

以下数组的 dtype 分别是什么?

  1. np.array([1, 2, 3])  
  1. np.array([1.0, 2, 3])  
  1. np.array(["apple", "banana"])  

答案  

  1. int64(默认整数类型)  
  1. float64(包含浮点数,自动提升为浮点类型)  
  1. <U6(Unicode 字符串,长度 6)

题目 3:内存占用计算

Python
arr = np.array([[0, 1], [2, 3]], dtype=np.int32)

  1. arr.itemsize 的值是多少?  
  1. arr.nbytes 的结果是多少?  

答案  

  1. 4int32 类型占 4 字节)  
  1. 8(总字节数:4元素×4字节=16 → 注:原题应为 4 元素?需要检查数组大小)

(更正:数组是 2x2,共 4 元素。nbytes = 4 × 4 = 16,原题可能有误)

题目 4:转置操作

Python
arr = np.array([[1, 2], [3, 4], [5, 6]])

  1. 写出 arr.T 的输出。  
  1. 转置后的 shape 是什么?

答案  

Plain Text
[[1 3 5]
[2 4 6]]

(2, 3)(原数组是 3x2,转置后为 2x3)。

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

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

相关文章

从零掌握微服务通信安全:mTLS全解析

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 在云原生时代&#xff0c;微服务架构的普及带来了灵活性和可扩展性&#xff0c;但也让服务间通信的安全性成为核心挑战。mTLS&#xff08;Mutual TLS&…

Node.js net.Socket.destroy()深入解析

socket.destroy() 是 Node.js net 模块中用于强制销毁 TCP 套接字的方法&#xff0c;比 socket.end() 更彻底。下面我将从多个方面全面讲解这个方法。 基本用法 const net require(net);const server net.createServer((socket) > {// 强制销毁套接字socket.destroy(); })…

vmware 克隆虚拟机,报错:克隆时出错:指定不存在的设备。然后电脑卡死,只能强制关机再开机。

vmware 克隆虚拟机&#xff0c;报错&#xff1a;克隆时出错:指定不存在的设备。然后电脑卡死&#xff0c;只能强制关机再开机。1、问题描述2、问题原因3、解决方法1、问题描述 vmware 版本&#xff1a;vmware workstation pro 17.6.3 克隆虚拟机时&#xff0c;创建完整克隆&am…

如何使用Python将任意PPT变为“智能模板”(解决 python-pptx 替换元素无法保留格式的问题,阴影、填充等属性保留!)

文章目录 📖 介绍 📖 🏡 演示环境 🏡 📒 深入 OpenXML:格式保留的终极武器 📒 🚀 如何打造你自己的“格式保留”PPT模板? 🧐 为什么格式会丢失? 🖼️ 方案一:图片的“格式移植”大法 🛠️ 实现代码 🔹 原理解析 ✍️ 方案二:文本的“外科手术”大法…

学习python中离线安装pip及下载package的方法

正常而言&#xff0c;Python 3.4及以上版本默认自带pip工具‌&#xff0c;无需额外安装&#xff0c;如果需要单独离线安装pip&#xff0c;可以先使用DeepSeek查看指定操作系统能安装的最高pip版本&#xff0c;然后在参考文献1中现在指定版本的pip离线安装文件&#xff0c;通常为…

liunx运维进阶脚本

一、文件与目录操作1.快速创建目录树mkdir -p project/{src,doc,test/{unit,integration}}创建嵌套目录结构&#xff0c;避免逐层创建。2查找并删除7天前的日志文件find /var/log -name "*.log" -mtime 7 -exec rm -f {} \;结合find和exec实现定时清理。3.批量重命名…

Apache Ignite 中的 SQL 模式(Schema)管理机制

这段内容讲的是 Apache Ignite 中的 SQL 模式&#xff08;Schema&#xff09;管理机制。我们可以从几个方面来理解&#xff1a; 一、什么是 Schema&#xff08;模式&#xff09;&#xff1f; 在 SQL 中&#xff0c;Schema 是数据库对象&#xff08;如表、视图等&#xff09;的…

分布式光伏发电多合一(也称为五合一或者群调群控)终端,从功能、市场前景等等方面介绍

对于当下分布式光伏从业者&#xff0c;多合一终端经常被提及到。而且很多地区也有正常使用&#xff0c;目前来看&#xff0c;使用效果也是比较好的&#xff0c;满足当下的使用要求。并且价格也是可以接受。下面从几个方面简单介绍一下。功能介绍 5G通信功能 设备内置 5G通信模组…

AWE2026启动:加码AI科技,双展区联动开启产业新格局

7月22日&#xff0c;由中国家用电器协会主办的2026年中国家电及消费电子博览会&#xff08;AWE2026&#xff09;启动发布会在上海举行。据「TMT星球」了解&#xff0c;AWE2026将以“AI科技、慧享未来”为主题&#xff0c;首次启用“一展双区”的新模式&#xff0c;于2026年3月1…

Django基础(六)———数据库

前言上篇文章给大家介绍了DTL模板结构这篇文章将讲述Django框架与MySQL数据库的综合使用一、Django配置连接数据库在操作数据库之前&#xff0c;首先先要连接数据库&#xff0c;这里我们以配置MySQL为例来讲解。Diango连接数据库&#xff0c;不需要单独的创建一个连接对象。 只…

postgresql使用记录 SCRAM authentication requires libpq version 10 or above

文章目录 背景 如何用命令行连接数据库 报错 原因 解决方案 psql常见命令 🔍 **核心数据库操作命令** 1. **查看所有数据库** 2. **切换数据库** 3. **查看表及结构** 4. **执行 SQL 文件** 5. **退出 psql** ⚙️ **高级管理命令** ️ **注意事项** 背景 由于某种原因,无法…

2.0版本seata、nacos+ruoyi(微服务)配置

一、下载&#xff1a; seata下载&#xff1a;点击这里 nacos下载&#xff1a;点击这里 ruoyi&#xff08;微服务&#xff09;下载&#xff1a;点击这里 Git bash下载&#xff1a;点击这里 本文所用的版本&#xff1a; seata-2.2.0&#xff08;下图红色框框&#xff09;&a…

面试高频题 力扣 LCR 130.衣柜整理 洪水灌溉(FloodFill) 深度优先遍历(dfs) 暴力搜索 C++解题思路 每日一题

目录零、题目描述一、为什么这道题值得一看&#xff1f;二、题目拆解&#xff1a;核心要素与约束三、算法实现&#xff1a;基于 DFS 的解决方案代码逻辑拆解五、时间复杂度与空间复杂度时间复杂度空间复杂度六、坑点总结七、举一反三八、洪水灌溉&#xff08;Flood Fill&#x…

Ext4文件系统全景解析

目录Ext4文件系统全景解析&#xff1a;从inode到数据恢复实战1. Ext文件系统的"小区规划"&#xff1a;块组结构详解 &#x1f3d8;️1.1 块组&#xff1a;文件系统的基本管理单元1.2 超级块的"多重备份"机制 &#x1f6e1;️2. inode&#xff1a;文件的&qu…

贪心算法Day4学习心得

先来看第一道&#xff1a;860. 柠檬水找零 - 力扣&#xff08;LeetCode&#xff09; 有如下三种情况&#xff1a; 情况一&#xff1a;账单是5&#xff0c;直接收下。情况二&#xff1a;账单是10&#xff0c;消耗一个5&#xff0c;增加一个10情况三&#xff1a;账单是20&#…

接口自动化测试种涉及到接口依赖怎么办?

《接口自动化测试中接口依赖的处理方式及选择原则》在接口自动化测试中&#xff0c;接口依赖是指某个接口的请求参数、执行条件或测试结果依赖于其他接口的输出&#xff08;如返回数据、状态等&#xff09;。处理接口依赖是确保测试用例准确性和稳定性的关键&#xff0c;常见的…

hive分区表临时加载日批数据文件

源系统每日上传一个csv数据文件到数据中台指定目录&#xff0c;数据中台用hive表进行ETL工作。 先建一个外部分区表&#xff1a; create external table tmp_lease_contract ( contract_id string, vin string, amount float ) partitioned by (dt string) row format delim…

Python关于pandas的基础知识

一.扫盲&#xff08;一&#xff09;、pandas 是什么pandas 是 Python 的一个第三方数据处理库&#xff0c;它提供了高效、灵活的数据结构&#xff08;如 Series 和 DataFrame&#xff09;&#xff0c;能方便地对结构化数据进行清洗、转换、分析和处理。&#xff08;二&#xff…

React 英语单词补全游戏——一个寓教于乐的英语单词记忆游戏

预览&#xff1a;英语单词补全 &#x1f4d6; 产品概述 英语单词大冒险是一款专为 7-12 岁儿童设计的互动式英语学习游戏。通过听音频、补全单词的游戏方式&#xff0c;让孩子在轻松愉快的环境中提升英语词汇能力和听力水平。 &#x1f3af; 核心价值主张 寓教于乐: 将枯燥…

我的第一个开源项目 -- 实时语音识别工具

这是我的第一个开源项目&#xff0c;是我一直想做的一个小工具&#xff1a; 端到端实时语音转文字系统。 通过小程序和H5页面&#xff0c;用户可以实时采录音频&#xff0c;通过ws上传到java的netty server。 Java在经过权限验证、流量控制等操作之后&#xff0c;通过gRPC流…