第二十一天-NumPy
目录
什么是NumPy
NumPy使用
1.数组的创建
2.类型转换
3.赠删改查
4.数组运算
5.矩阵运算
什么是NumPy
1.NumPy操作的是多维数组,什么是纬度?

NumPy使用
1. 安装
pip install numpy
import numpy as np
2.官网:
中文官网:numpy.org.cn
1.数组的创建
1.创建一个一维数组:array
import numpy as np#创建一个一维数组
d1=np.array([1,2,3,4,5])
print(d1)
#查看size
print(d1.size)
#查看type
print(type(d1))
#查看数据维度
print(d1.ndim)
out:
[1 2 3 4 5]
5
<class 'numpy.ndarray'>
1
2.创建一个二维数组:arnge
#创建一个二维数组
d2=np.arange(15)
print(d2)
#增加行,列维度
d2=d2.reshape(3,5)
print(d2)
out:
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14]
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]]
3.创建全为0或1的数组
# 创建全为0的数组
d3 = np.zeros(15)
d3 = d3.reshape(3, 5)
print(d3)d4 = np.ones(15)
d4 = d4.reshape(3, 5)
print(d4)
out
[[0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0.]]
[[1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1.]]
4.empty,创建新数组,只分配内存空间,不填充任何值
d5 = np.empty(([1,2,3]))
print(d5)
2.类型转换
numpy会自动根据传入类型设置数据类型
1. 数组转np数组
# 数组转为np数组
data = [[1, 2, 3, 4], [5, 6, 7, 8]]
print(type(data))
d1 = np.array(data)
print(d1)
print(type(d1))
out:
<class 'list'>
[[1 2 3 4]
[5 6 7 8]]
<class 'numpy.ndarray'>
2.dtype识别数据类型
d4 = np.ones(15)
d4 = d4.reshape(3, 5)
print(d4.dtype)
out:float64
3.创建时指定数据类型
d4 = np.arange(15,dtype=np.float64)
d4 = d4.reshape(3, 5)
print(d4)print(d4.dtype)
4.对ndarray进行数据类型转换,astype
data4.astype(np.float64)
3.赠删改查
1.索引
#一维数组索引获取数据 d1=np.arange(15) print(d1) print("获取第一个:",d1[0]) print("获取最后一个:",d1[-1])#二维数组 d2=np.arange(15).reshape(3,5) print(d2) print("获取第一行第一列,方法1:",d2[0,0]) print("获取第一行第一列,方法2:",d2[0][0]) print("获取倒数第一行第一列,方法1:",d2[-1,-1]) print("获取倒数第一行第一列,方法2:",d2[-1][-1])#三维数组 d2=np.arange(30).reshape(3,5,2) print(d2) print("获取第一行第一列第一个,方法1:",d2[0,0,0]) print("获取第一行第一列第一个,方法2:",d2[0][0][0]) print("获取倒数第一行第一列第一个,方法1:",d2[-1,-1,-1]) print("获取倒数第一行第一列第一个,方法2:",d2[-1][-1][-1])[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14]
获取第一个: 0
获取最后一个: 14
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]]
获取第一行第一列,方法1: 0
获取第一行第一列,方法2: 0
获取倒数第一行第一列,方法1: 14
获取倒数第一行第一列,方法2: 14
[[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]][[10 11]
[12 13]
[14 15]
[16 17]
[18 19]][[20 21]
[22 23]
[24 25]
[26 27]
[28 29]]]
获取第一行第一列第一个,方法1: 0
获取第一行第一列第一个,方法2: 0
获取倒数第一行第一列第一个,方法1: 29
获取倒数第一行第一列第一个,方法2: 29
2.索引
#一维数组切片
d1=np.arange(15)
print("===",d1[0:3]) #截取包含起始下标到不包含结尾的数据
print("===",d1[:-1]) #截取全部#二维数组切片
d2=np.arange(15).reshape(3,5)
print("===",d2[0:1,:]) #行参数,列参数
print("===",d2[:,3:4]) #获取全部行,中3列的数据#三维数组
d3=np.arange(30).reshape(3,5,2)
print("===",d3)
print("===",d3[0:1,2:,:]) #行参数,列参数,三维参数#根据索引获取数据
#一维数组
print("===",d1[np.array([0,2,4])])print("===",d2[np.array([0,2]),np.array([1,2])])
=== [0 1 2]
=== [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13]
=== [[0 1 2 3 4]]
=== [[ 3]
[ 8]
[13]]
=== [[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]]
[[10 11]
[12 13]
[14 15]
[16 17]
[18 19]]
[[20 21]
[22 23]
[24 25]
[26 27]
[28 29]]]
=== [[[4 5]
[6 7]
[8 9]]]
=== [0 2 4]
=== [ 1 12]
4.数组运算
1. 算数运算
import numpy as np#算数运算 a= np.random.random(10000)*10 b= np.random.random(10000)*10 #加法 print("加法:",np.add(a,b)) print("减法:",np.subtract(a,b)) print("除法:",np.divide(a,b)) print("乘法:",np.multiply(a,b))加法: [13.06866571 6.26206256 7.44861655 ... 12.38302847 13.97542329
11.69602862]
减法: [-1.04377832 4.84747125 2.0907946 ... -5.08931599 -0.78999914
7.99437207]
除法: [0.85207689 7.85352893 1.78046438 ... 0.41744326 0.89299336 5.31934836]
乘法: [42.42513755 3.92886251 12.77761661 ... 31.85956422 48.67208937
18.22177516]
2.数学函数
如:sin, 更多函数请看官方文档
#数学三角函数 ang=np.array([0,30,45,60,90,120,135,150,180]) rad=np.sin(ang*np.pi/180) print(rad)[0.00000000e+00 5.00000000e-01 7.07106781e-01 8.66025404e-01
1.00000000e+00 8.66025404e-01 7.07106781e-01 5.00000000e-01
1.22464680e-16]
3.统计函数
# 统计函数 d2 = np.array([1, 2, 3, 4, 5]) print("平均值mean:", np.mean(d2)) print("平均值average:", np.average(d2)) print("平均值,加权:", np.average(d2, weights=np.array([2, 2, 1, 1, 1]))) print("中位数median:", np.median(d2)) # 中位数,如未偶数,则取中间2个值进行除以2 print("中位数median,偶数:", np.median([1, 2, 3, 4, 5, 6])) #方差 求每个数的离散值 print("方差,,var:", np.var(d2)) print("标准差,std:", np.std(d2))平均值mean: 3.0
平均值average: 3.0
平均值,加权: 2.5714285714285716
中位数median: 3.0
中位数median,偶数: 3.5
方差,求每个数的离散值,var: 2.0
标准差,std: 1.4142135623730951
4.聚合运算
sum与np.sum性能对比,np.sum函数比内置统计函数快了10倍

#聚合运算 a = np.array([1, 2, 3, 4, 5]) print("内置统计函数sum:",sum(a)) print("numpay统计函数:sum:",np.sum(a)) print("累计乘prod:",np.prod(a)) print("最大值max:",np.max(a)) print("最小值min:",np.min(a))内置统计函数sum: 15
numpay统计函数:sum: 15
累计乘prod: 120
最大值max: 5
最小值min: 1
5.筛选排序:
# 筛选、排序 a = np.array([1, 2, 3, 4, 5, 6]) # 筛选函数,注意返回的是下标 print("筛选:", np.where(a > 3)) print("排序,升序:", np.sort(a))筛选: (array([3, 4, 5], dtype=int64),)
排序: [1 2 3 4 5 6]
5.矩阵运算
1.什么是矩阵,
- 按照长方阵列(m行*n列)排列的数值集合


- dot使用
a = np.arange(15).reshape(3, 5) b = np.arange(15, 30).reshape(3, 5) print("a:",a) print("b:",b) # 转置 a = a.T print("a转置后",a) print(np.dot(a, b))a: [[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]]
b: [[15 16 17 18 19]
[20 21 22 23 24]
[25 26 27 28 29]]
a转置后 [[ 0 5 10]
[ 1 6 11]
[ 2 7 12]
[ 3 8 13]
[ 4 9 14]]
[[350 365 380 395 410]
[410 428 446 464 482]
[470 491 512 533 554]
[530 554 578 602 626]
[590 617 644 671 698]]
相关文章:
第二十一天-NumPy
目录 什么是NumPy NumPy使用 1.数组的创建 2.类型转换 3.赠删改查 4.数组运算 5.矩阵运算 什么是NumPy 1.NumPy操作的是多维数组,什么是纬度? NumPy使用 1. 安装 pip install numpy import numpy as np 2.官网: 中文官网:…...
Vue:自动按需导入element-plus图标
自动导入使用 unplugin-icons 和 unplugin-auto-import 从 iconify 中自动导入任何图标集。 完整vite.config.js参考模板 https://download.csdn.net/download/ruancexiaoming/88928539 动态导入图标参考 https://blog.csdn.net/ruancexiaoming/article/details/136568219 导入…...
魔法之线:探索string类的神秘世界
🎉个人名片: 🐼作者简介:一名乐于分享在学习道路上收获的大二在校生 🙈个人主页🎉:GOTXX 🐼个人WeChat:ILXOXVJE 🐼本文由GOTXX原创,首发CSDN&…...
使用gnvm下载nodejs和npm
目录 前言 一、下载gnvm 二、利用gnvm下载nodejs 三、下载对应版本的npm 四、gnvm常用的命令 总结 前言 由于之前下载的版本过低,需要升级版本。但在使用gnvm升级node版本时遇到了一系列的问题,索性就把nodejs全部删除,重新用gnvm在下…...
C语言——简易版扫雷
目录 前言 编辑 游戏规则 游戏结构的分析 游戏的设计 使用多文件的好处有以下几点: 游戏代码实现 框架(test.c) game函数(test.c) InitBoard初始化(game.c) Print打印棋盘(g…...
L3自动驾驶的“双保险”:冗余EPS关键技术解析
摘要: 本文主要介绍冗余EPS的发展路径和关键技术。 引言 在乘用车领域,电动助力转向系统(Electric Power Steering,EPS)相比传统的液压助力转向系统(Hydraulic Power Steering,HPS)具有结构简单、响应迅速、能耗低等优点,因此应用很广。随着智能驾驶的发展,作为底层…...
java.net.UnknownHostException
目录 报错信息 报错分析 UnknownHostException 分析 尝试解决 域名 报错可能 网络请求: 数据库连接: Socket通信: 总结: 报错信息 java.net.UnknownHostException Caused by: java.net.UnknownHostException:at java.…...
比派电器T6白色系高速吹风机,高品质保证下,追求极致性价比
广东比派电器科技有限公司于2020年成立于东莞市松山湖高新技术企业园区融易大厦,公司聚焦于小家电的研发,生产,销售。专注在小家电的PCBA研发,产品设计,成品生产。提供小家电产品一站式解决方案,致力于成为…...
每天学习一个Linux命令之ss
每天学习一个Linux命令之ss 在Linux中,网络管理是非常重要的一项工作。ss(Socket Statistics)是一个强大的命令行工具,用于获取各种网络套接字统计信息。它可以帮助我们查看网络连接、监听套接字、路由表、组播成员等信息。本文将…...
Qt的信号槽机制
1. 什么是元对象编译器和元对象系统? 在开始讲信号槽之前,我们先了解下Qt的框架的核心组成部分,Qt的元对象编译器(MOC)和元对象系统是Qt框架的核心组成部分,它们使得Qt拥有了信号与槽机制、反射(…...
跨域问题总结
文章目录 概要web应用整体请求流程技术名词解释跨域问题产生的原理解决方案前端代码角度前端服务器角度后端代码角度后端服务器角度 小结 概要 在不成熟的前后端开发过程中,经常遇到跨域问题; 在前后端分离的模式下的开发过程中,经常遇到跨域…...
K8s-MySQL主从集群
K8s-MySQL主从集群 引言 该案例代码均可从https://github.com/WeiXiao-Hyy/k8s_example 获取,欢迎Star! 需求 一个“主从复制”的MySQL集群有一个主节点Master有多个从节点Slave从节点需要能水平扩展所以写操作只能在主节点上执行读操作可以在所有节点…...
seo js转码工具
js转码工具作用 用于把js加密 如果不想让别人看到自己的js 代码就可以使用这个方法 js工具网址 https://tool.chinaz.com/js.aspx 效果...
【SQL】601. 体育馆的人流量(with as 临时表;id减去row_number()思路)
前述 知识点学习: with as 和临时表的使用12、关于临时表和with as子查询部分 题目描述 leetcode题目:601. 体育馆的人流量 思路 关键:如何确定id是连续的三行或更多行记录 方法一: 多次连表,筛选查询方法二&…...
java上传本地文件到服务器共享
在Windows系统中,将本地文件夹中的某个文件上传到另一台Windows服务器电脑上,前提:两台电脑网络互通,要接收文件的Windows服务器文件夹开启了共享,可以被本机用如下方式进行写入和读取: 如何配置服务器共享请自行百度查找。 所需要的maven依赖如下: <dependency>…...
Redis场景总结
使用场景 在大型的秒杀库存扣减,app首页流量高峰,很容易将传统的关系型数据库(mysql,oracle等)给压垮。 还有很多没必要持久化的数据,比如说短信验证码,点赞数等。 分布式锁。 分布式缓存(会话共享)。 …...
2024.3.11 C++作业
1、提示并输入一个字符串,统计该字符中大写、小写字母个数、数字个数、空格个数以及其他字符个数要求使用C风格字符串完成 #include <iostream>using namespace std;int main() {char str[20];cout << "please enter the str:";gets(str);in…...
【wps】wps与office办公函数储备使用(结合了使用案例 持续更新)
【wps】wps与office办公函数储备使用(结合了使用案例 持续更新) 1、TODAY函数 返回当前电脑系统显示的日期 TODAY函数:表示返回当前电脑系统显示的日期。 公式用法:TODAY() 2、NOW函数 返回当前电脑系统显示的日期和时间 NOW函数:表示返…...
初级爬虫实战——伯克利新闻
文章目录 发现宝藏一、 目标二、简单分析网页1. 寻找所有新闻2. 分析模块、版面和文章 三、爬取新闻1. 爬取模块2. 爬取版面3. 爬取文章 四、完整代码五、效果展示 发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不…...
WPF资源的继承
假设这里有一个全局的资源 <Style TargetType"TextBlock"><Setter Property"FontSize" Value"40"/> </Style> 这是时候有些控件可能需要一个样式在这个基础上加一点内容的 <Style x:Key"textBlockStyle" Targ…...
【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...
快刀集(1): 一刀斩断视频片头广告
一刀流:用一个简单脚本,秒杀视频片头广告,还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农,平时写代码之余看看电影、补补片,是再正常不过的事。 电影嘛,要沉浸,…...
libfmt: 现代C++的格式化工具库介绍与酷炫功能
libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库,提供了高效、安全的文本格式化功能,是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全:…...
LOOI机器人的技术实现解析:从手势识别到边缘检测
LOOI机器人作为一款创新的AI硬件产品,通过将智能手机转变为具有情感交互能力的桌面机器人,展示了前沿AI技术与传统硬件设计的完美结合。作为AI与玩具领域的专家,我将全面解析LOOI的技术实现架构,特别是其手势识别、物体识别和环境…...
在树莓派上添加音频输入设备的几种方法
在树莓派上添加音频输入设备可以通过以下步骤完成,具体方法取决于设备类型(如USB麦克风、3.5mm接口麦克风或HDMI音频输入)。以下是详细指南: 1. 连接音频输入设备 USB麦克风/声卡:直接插入树莓派的USB接口。3.5mm麦克…...
LLaMA-Factory 微调 Qwen2-VL 进行人脸情感识别(二)
在上一篇文章中,我们详细介绍了如何使用LLaMA-Factory框架对Qwen2-VL大模型进行微调,以实现人脸情感识别的功能。本篇文章将聚焦于微调完成后,如何调用这个模型进行人脸情感识别的具体代码实现,包括详细的步骤和注释。 模型调用步骤 环境准备:确保安装了必要的Python库。…...
链式法则中 复合函数的推导路径 多变量“信息传递路径”
非常好,我们将之前关于偏导数链式法则中不能“约掉”偏导符号的问题,统一使用 二重复合函数: z f ( u ( x , y ) , v ( x , y ) ) \boxed{z f(u(x,y),\ v(x,y))} zf(u(x,y), v(x,y)) 来全面说明。我们会展示其全微分形式(偏导…...
Python 高级应用10:在python 大型项目中 FastAPI 和 Django 的相互配合
无论是python,或者java 的大型项目中,都会涉及到 自身平台微服务之间的相互调用,以及和第三发平台的 接口对接,那在python 中是怎么实现的呢? 在 Python Web 开发中,FastAPI 和 Django 是两个重要但定位不…...
性能优化中,多面体模型基本原理
1)多面体编译技术是一种基于多面体模型的程序分析和优化技术,它将程序 中的语句实例、访问关系、依赖关系和调度等信息映射到多维空间中的几何对 象,通过对这些几何对象进行几何操作和线性代数计算来进行程序的分析和优 化。 其中࿰…...
