news 2026/6/23 10:59:27

Python-Numpy 的基础知识

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python-Numpy 的基础知识

1.ndarray 的数据类型

2.索引与切片

# 一维数组的索引与切片 arr = np.array([0,1,2,3,4,5,6,7,8,9]) print(arr) print(arr[0]) # 第一个元素 ---0 print(arr[:]) # 所有元素 ---[0 1 2 3 4 5 6 7 8 9] print(arr[1:5]) # 左闭右开 ---[1 2 3 4] print(arr[1:5:2]) # 步长为2 ---[1 3] print(arr[(arr>5) & (arr<8)]) # # 条件索引,输出大于5且小于8的元素 ---[6 7] print(arr[slice(1,5,2)]) # 使用slice对象进行切片,等价于arr[1:5:2] ---[1 3] # 二维数组的索引与切片 arr = np.random.randint(1,100,(3,4)) print(arr) print(arr[1,2]) # 第2行第3列的元素 ---24 print(arr[1]) # 第2行的所有元素 ---[91 86 24 67] print(arr[:,2]) # 第3列的所有元素 ---[ 2 24 52] print(arr[arr>50]) # 条件索引,输出大于50的元素 # ---[98 95 91 86 67 52 70] print(arr[slice(1,3), slice(0,2)]) # 使用slice对象进行切片,等价于arr[1:3,0:2] #----[[91 86] # [23 47]]

3.ndarray的运算

a = np.array([1,2,3]) b = np.array([4,5,6]) print(a + b) # 数组的加法: 对应索引位置的元素相加 print(a * b) # 数组的乘法: 对应索引位置的元素相乘 print(a - b) # 数组的减法: 对应索引位置的元素 print(a / b) # 数组的除法: 对应索引位置的元素相除 print(a ** 2) # 数组的幂运算: 每个元素的平方 c = np.array([[1,2],[3,4]]) d = np.array([[5,6],[7,8]]) print(c + 5) # 数组与标量的加法: 每个元素加5 print(c * 2) # 数组与标量的乘法: 每个元素 print(c * d) # 数组的元素乘法: 对应索引位置的元素相乘 print(c @ d) # 数组的矩阵乘法: c的行与d的列进行点积运算 print(c.dot(d.T)) # 数组的 点乘: 等价于c @ d.T(d的转置) # 广播机制 # 当两个数组的形状不同时,通过广播机制将它们的形状统一,再进行运算 a = np.array([1,2,3]) b = np.array([[1],[2],[3]]) print(a + b) # 广播: a的每个元素与b的每个元素相加

4.Numpy常用函数

# 常用函数 arr = np.array([1,2,3,4,5]) print(np.sqrt(arr)) # 数组的平方根: 每个元素的平方根-sqrt print(np.exp(arr)) # 数组的指数函数: 每个元素的指数- exp print(np.sin(np.pi/2)) # 数组的正弦函数: 每个元素的正弦值 - sin print(np.cos(np.pi/3)) # 数组的余弦函数: 每个元素的余弦值 - cos print(np.abs(arr)) # 数组的绝对值函数: 每个元素的绝对值 - abs print(np.power(arr,2)) # 数组的幂函数: 每个元素的平方 - power print(np.round(arr)) # 数组的四舍五入函数: 每个元素四四舍五入 - round print(np.isnan(arr)) # 数组的判断函数: 判断每个元素是否为NaN - isNaN # 数组的统计函数 print(np.sum(arr)) # 数组的求和函数: 所有元素的和 - sum print(np.mean(arr)) # 数组的平均值函数: 所有元素的平均值 - mean print(np.median(arr)) # 数组的中位数函数: 所有元素的中位数 - median print(np.std(arr)) # 数组的标准差函数: 所有元素的标准差 - std print(np.var(arr)) # 数组的方差函数: 所有元素的方差 - var print(np.min(arr)) # 数组的最小值函数: 所有元素的最小值 - min print(np.max(arr)) # 数组的最大值函数: 所有元素的最大值 - max print(np.percentile(arr, 50)) # 数组的百分位数函数: 所有元素的第50百分位数 - percentile # 比较函数 : 判断数组元素是否满足某个条件 arr = np.array([1,2,3,4,5]) print(np.equal(arr, 3)) # 数组的相等比较函数: 判断每个元素是否等于3 - equal print(np.greater(arr, 3)) # 数组的大于比较函数: 判断每个元素是否大于3 - greater print(np.less(arr, 3)) # 数组的小于比较函数: 判断每个元素是否小于3 - less print(np.equal([1,4,7],[2,5,7])) print(np.logical_and(arr>2, arr<5)) # 数组的逻辑与函数: 判断每个元素是否大于2且小于5 - logical_and print(np.logical_or(arr>2, arr<5)) # 数组的逻辑或函数: 判断每个元素是否大于2或小于5 - logical_or print(np.logical_not(arr>3)) # 数组的逻辑非函数: 判断每个元素是否不大于3 - logical_not # 自定义条件 arr = np.array([1,2,3,4,5]) score = np.random.randint(0,100,20) print(np.where(arr<3,arr,0)) # 数组的where函数: 根据条件返回元素 - where # 形如三目运算符 条件 ? 表达式1 : 表达式2 ======可以嵌套使用 # 数组的select函数: 根据条件返回元素 - select print(np.select([score>80,(score>60) & (score<=80),score<60],['A','B','C'])) # 排序 arr = np.array([5,3,2,4,1]) print(arr) print(np.sort(arr)) # 数组的sort函数: 对数组元素排序 - sort print(arr.argsort()) # 数组的argsort函数: 返回数组元素排序后的索引 - argsort # 去重函数 # 数组的unique函数: 返回数组中唯一的元素 - unique arr = np.array([1,2,2,3,4,4,5]) print(np.unique(arr)) # 数组的拼接 # 数组的concatenate函数: 将多个数组拼接在一起 - concatenate arr1 = np.array([1,2,3]) arr2 = np.array([4,5,6]) print(np.concatenate((arr1, arr2))) # 数组的分割 arr = np.array([1,2,3,4,5,6]) print(np.split(arr, 3)) # 数组的split函数: 将数组分割成3个子数组 - split # 数组的reshape函数: 将数组重新塑形 - reshape arr = np.arange(1,13) print(np.reshape(arr,(3,4))) # 数组的求和函数: 所有元素的和 - sum print("每行的和为:",np.sum(np.reshape(arr,(3,4)),axis=1)) print("每列的和为:",np.sum(np.reshape(arr,(3,4)),axis=0))
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 10:54:03

认知微调与结构化推理:大语言模型在金融交易决策中的工程化实践

1. 项目概述&#xff1a;当大语言模型遇上金融交易最近和几个做量化交易的朋友聊天&#xff0c;发现一个挺有意思的现象&#xff1a;大家一边在讨论大语言模型&#xff08;LLM&#xff09;的颠覆性潜力&#xff0c;一边又对它在金融交易这种高噪声、高风险的场景下落地感到头疼…

作者头像 李华
网站建设 2026/6/23 10:45:30

【JAVA毕设源码分享】基于springboot高校教师绩效管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/6/23 10:23:52

1小时极速体验AMD云环境模型微调

万事俱备只欠东风,所有的资源和代码都已就位,只需一键启动即可体验使用LoRA微调的成就感AMD AI 开发者计划

作者头像 李华
网站建设 2026/6/23 10:15:58

Vercel Eve开源:每个智能体就是一个文件夹,AI Agent开发迎来新范式

目录 前言 一、Vercel Eve是什么&#xff1f; 二、环境准备 三、实操步骤&#xff1a;5分钟搭建你的第一个Eve Agent 四、进阶用法 五、2026年6月AI领域其他重磅动态速览 六、总结与建议 前言 2026年的AI开发圈&#xff0c;真可以用"神仙打架"来形容。就在昨天…

作者头像 李华